---
title: 19. IMR — Instrumento de Medição de Resultado
slug: 19-imr-instrumento-de-medicao-de-resultado
docTags: 
createdAt: 2026-10-13T14:39:27.538Z
---

*O motor que transforma sinal técnico e registro de processo em valor a faturar, com nexo auditável. Exclusivo de contratos do Governo Federal brasileiro.*

O IMR não é mais um indicador. É um **motor de apuração financeira**: transforma telemetria e registros em valor a faturar por contrato, por mês, com nexo auditável.

Ele não coleta dado e não opera nada. Recebe fatos de duas fontes, aplica regra contratual e produz três saídas: a memória de cálculo, a proposta de ateste ou glosa, e o registro imutável que sustenta a decisão da Administração.

O princípio que governa tudo:

:::hint{type="info"}
Disponibilidade isolada não confere conformidade. Uma unidade só é conforme quando os três sinais coincidem no mesmo período, sobre o mesmo ativo, com evidência no canal pactuado.
:::

E a consequência disso, que explica metade das decisões do módulo: **ausência de sinal nunca vira conformidade**. Um sinal que não chegou vale DESCONHECIDO, jamais OK.

***

### <font color="#15803D">Ligar e desligar</font>

O módulo nasce **desligado**. Em **Administração ▸ Normas disponíveis**, no bloco **IMR — Instrumento de Medição de Resultado**, o botão mostra **Desligado** ou **Ligado nesta instalação**; clique nele para trocar (exige admin\:estrutura). Ligado, acrescenta o grupo **IMR**, com dez telas, ao menu de quem tem imr\:ler; desligado, nenhuma tela aparece.

As permissões do módulo separam quem faz o quê: `imr:ler `consulta; `imr:operar` conduz o ciclo (abrir período e ligá-lo ao contrato, congelar, apurar, propor consequências, abrir contraditório, registrar alegação, declarar janela e registrar à mão ocorrência aberta); `imr:decidir` registra o ato da Administração, revisa apuração, responde alegação, define parâmetro e vê o Faturamento; `imr:contratar` cadastra contrato, atividade, regra, modelo de cálculo e unidade; `imr:ingerir` é das plataformas que enviam dado.

Desligar **não apaga nada**. Períodos, apuração e decisões continuam gravados, e religar devolve tudo — um interruptor que destrói dado não é interruptor, é armadilha.

A razão de nascer desligado: o instrumento atende exclusivamente a contratos do Governo Federal brasileiro. Numa instalação privada seriam dez itens de menu que ninguém abre, e menu que não serve ensina a pessoa a ignorar o menu.

***

### <font color="#15803D">Como o módulo fica desacoplado</font>

O IMR é um módulo Maven próprio, com esquema próprio (`imr`) e permissões próprias. A dependência aponta só para dentro: ele conhece o núcleo e o escopo, e **nenhum outro módulo o conhece**. Tirar a linha do pom.xml deve deixar a plataforma compilando — se um dia não deixar, o acoplamento voltou e alguém precisa desfazer.

***

### <font color="#15803D">As dez telas</font>

**Contratos** — o que foi contratado, por quanto, e sob que regras. É a primeira tela do menu porque é onde o instrumento começa: sem contrato não há valor a ratear, e a glosa fica só em percentual.

**Unidades de remuneração** — U1 a U7, com o que cada dimensão significa em cada uma e quais itens estão nelas. A unidade é o que liga o item de configuração ao dinheiro: o item pertence a uma, a atividade contratada atende uma, e é por essa coincidência que o motor sabe quanto vale cada item no rateio.

**Períodos** — o ciclo mensal, um período por contrato, e suas ações: abrir já com o contrato, congelar, apurar, propor consequências, abrir contraditório. Cada botão só acende no estado em que faz sentido.

**Apuração** — item a item, com estado, percentual de pagamento, valor rateado e montante da glosa. Cada linha abre: os sinais que a sustentam, o histórico de revisões, e a ação de revisar.

**Contraditório** — os itens abertos para contestação com o valor em jogo, e as alegações apresentadas. Antes da decisão e não depois: um instrumento que glosa e depois ouve inverte a ordem que o contrato estabelece.

**Decisões e travas** — o ato da Administração, e o indicador de tempestividade.

**Memória de cálculo** — de qualquer valor, o caminho até o sinal que o sustenta, com o contrato, o método de rateio e o hash da base na mesma folha. Exportável em CSV, formato aberto, independente do produto.

**Parâmetros do ANS** — os limiares, com rótulo, unidade, faixa e explicação, versionados por data de vigência.

**Faturamento** — o que vai para pagamento no mês, uma linha por contrato.

**Itens de configuração** — o que o Autonomous descobriu, e os sinais que foram rejeitados.

O caminho de um mês, na ordem das telas: cadastre o **contrato** (com atividades e regras), confira as **unidades**, abra e conduza o **período**, confira a **apuração**, ouça o **contraditório**, registre a **decisão**, e só então o **faturamento** mostra o valor a pagar.

***

### <font color="#15803D">Itens de configuração e sinais rejeitados</font>

A tela **IMR ▸ Itens de configuração** é de consulta: os itens chegam pela ingestão do Autonomous (`POST /api/v1/imr/ingestao/ativos`), e não por cadastro na tela.

1.     Em **Procurar por nome, identificador ou endereço IP**, digite parte do nome, o identificador ou o IP.

2.     A tabela mostra **Item**, **Endereço**, **Tipo**, **Unidade**, **Criticidade**, **Localidade** e **Visto em**. Clique no nome do item para ver o inventário que cada fonte reportou.

3.     Em **Sinais rejeitados**, no fim da tela, fica o que a ingestão recusou, com o motivo e quando chegou — é o primeiro lugar a olhar quando um item aparece sem sinal na apuração.

Trocar o item de unidade é na tela **Unidades** (coluna **Mover para**).

***

### <font color="#15803D">As unidades, e o que cada dimensão significa em cada uma</font>

U1 a U7 existiam como restrição no banco e lista fixa no formulário: sem nome, sem explicação, e sem nenhum lugar onde ver quais itens estão em cada uma.

Na tela **IMR ▸ Unidades** (alterar exige `imr:contratar`):

1.     Clique numa unidade para abrir a lista dos itens dela; na coluna **Mover para**, escolha outra unidade para mudar o item de lugar.

2.     Para criar uma unidade que o ANS definiu, clique em **Nova unidade**, preencha **Código**, **Nome**, **Ordem**, **Descrição** e os três critérios — **Critério de disponibilidade**, **Critério de registro** e **Critério de controle** — e clique em **Salvar**.

3.     Para corrigir uma unidade própria, use **editar** no cartão dela. As marcadas **do requisito** não têm esse link.

O que a tela traz de novo não é o cadastro — é o **critério de cada dimensão**. O requisito define, para cada unidade, o que conta como disponibilidade, como registro e como controle, e são coisas diferentes: num endpoint a disponibilidade é o agente reportando; num ativo de rede é a coleta de estado e enlace; num ativo recuperável, a conformidade nem se mede por estar de pé, e sim por uma restauração testada dentro do tempo acordado.

|                              | **Disponibilidade**                | **Registro**                          | **Controle**                                                   |
| ---------------------------- | ---------------------------------- | ------------------------------------- | -------------------------------------------------------------- |
| **U1** Endpoint              | agente ativo e reportando          | item ativo na CMDB                    | EDR ativo, disco cifrado, postura de MDM, atualização no prazo |
| **U2** Servidor ou instância | telemetria de SO e de desempenho   | item e serviço no catálogo            | linha de base, backup com restauração válida, agente presente  |
| **U3** Ativo de rede         | coleta de estado e enlace          | item com janela de mudança registrada | regra revalidada após a mudança, registro íntegro no SIEM      |
| **U4** Serviço digital       | monitor sintético e desempenho     | serviço publicado no catálogo         | mudança aprovada, WAF ativo, backup válido                     |
| **U5** Ativo protegido       | telemetria do controle de proteção | item vinculado ao controle            | controle reportando saúde no período                           |
| **U6** Ativo recuperável     | rotina de backup íntegra           | item com política vinculada           | restauração testada dentro de RTO e RPO                        |
| **U7** Outros, sob demanda   | caso a caso, no ANS                | registro obrigatório                  | definido no ANS                                                |

Sem esse texto à vista, quem recebe um item em "não governável" não tem como saber o que deveria ter chegado, e a conversa com o fornecedor vira troca de opinião.

A tela mostra, por unidade, quantos itens existem, quantas atividades a cobrem e quanto vale cada item no rateio — e **avisa quando há unidade com item e sem atividade contratada**: esses itens são apurados e rateados a zero, e apareceriam na apuração sem valor e sem explicação.

Mover um item de unidade é possível, e é recusado quando ele está numa base congelada de período ainda não encerrado: trocar a unidade ali mudaria o denominador de um rateio já feito. Não se move o poste depois do tiro.

As sete de fábrica não se editam — o texto delas é o do requisito, e reescrevê-lo faria a plataforma divergir do documento que o contrato cita. O órgão cria as próprias quando o ANS definir outras.

***

### <font color="#15803D">O contrato, que é a base de tudo</font>

O IMR nasceu apurando conformidade e propondo glosa em percentual. Faltava o denominador: um item em 50% propunha "glosa de 50%" de coisa nenhuma. **Percentual sem base não é glosa, é opinião** — e nenhuma Administração assina uma opinião.

Na tela **IMR ▸ Contratos** (cadastrar exige `imr:contratar`), nesta ordem:

1.     **Modelo de cálculo** — no bloco **Modelos de cálculo**, no fim da tela, clique em **Novo modelo** e preencha **Código**, **Nome**, **Versão**, **Descrição**, **Rateio**, **Arredondamento**, **Casas decimais** e **Teto mensal (%)**. **Salvar**. Para mudar o método, prefira uma versão nova a editar: preserva o histórico.

2.     **Contrato** — clique em **Novo contrato** e preencha **Código**, **Nome**, **Objeto**, **Número**, **Processo**, **Papel no nexo** (Governança C1-GOV, Operação C2-OPR ou Segurança C3-SEC), **Fornecedor**, **Órgão**, **Vigência — início** e **fim**, **Valor mensal** (o denominador do rateio), **Valor global** e **Modelo de cálculo**. **Salvar**.

3.     **Atividades** — clique no contrato para abri-lo; na aba **Atividades e serviços**, clique em **Nova atividade** e preencha **Código**, **Nome**, **Tipo** (Serviço, Atividade ou Insumo), **Unidade do IMR**, **Quantidade**, **Valor unitário** e **Valor mensal**. A tela diz se a soma das atividades fecha com o valor mensal do contrato.

4.     **Regras de glosa** — na aba **Regras de glosa**, clique em **Nova regra** e preencha **Código**, **Nome**, **Gatilho**, **Condição** (ex.: CONTROLE=FALHA), **% de glosa**, **Base** (Item, Atividade ou Contrato), **Teto (%)**, **Vigente de** e **Aplica-se a** (Todo o contrato ou uma atividade). **Salvar**.

Para corrigir um contrato, use **editar** no cartão dele.

O cadastro tem quatro objetos, nesta ordem de dependência:

**Modelo de cálculo** — o *como*. Existe antes do contrato e serve a vários: o rateio, o arredondamento, o teto mensal. Um órgão tem um jeito de calcular e vários contratos; redigitar o método a cada assinatura é onde a divergência nasce. O contrato o **herda**, não o copia.

**Contrato** — o *o quê*: objeto, número, processo, fornecedor, órgão, vigência, valor mensal e valor global. O contrato também é um **Alvo** da plataforma, porque contrato é dimensão de avaliação em auditoria, risco e painel — e o cadastro cria ou liga o Alvo sozinho, pelo código. Dois cadastros do mesmo contrato garantiriam que um dia eles divergissem, e esse dia seria o de uma glosa calculada sobre o valor errado.

**Atividades e serviços** — o que o contrato presta, cada um com quantidade, valor unitário, valor mensal e a **unidade do IMR** que atende. A unidade é o que liga dinheiro a apuração: o item de configuração pertence a uma unidade, a atividade também, e é por essa coincidência que o motor sabe quanto vale um item. A tela soma as atividades e diz se elas fecham com o valor mensal do contrato — quando não fecham, a diferença não é rateada sobre item nenhum, e é melhor saber disso antes do fechamento.

**Regras de glosa** — quando se glosa e quanto, por contrato ou por atividade. O percentual é de **glosa**, não de pagamento: 20% em NC leve glosa um quinto. Antes disto o percentual vinha do código; funciona para um contrato e para nenhum outro, e um número negociado que só existe dentro do jar é um número que ninguém audita. Sem regra cadastrada o motor usa o padrão do produto — o complemento do percentual de pagamento — e a memória de cálculo **diz qual dos dois caminhos foi usado**, porque um padrão não pode passar por uma negociação que não houve.

Cinco gatilhos, e a ordem de procura vai do mais específico para o mais geral — que é a ordem em que a Administração escreve o contrato:

| **Gatilho**     | **Dispara quando**                      | **Condição**   |
| --------------- | --------------------------------------- | -------------- |
| DIMENSAO        | uma dimensão chega em certo valor       | CONTROLE=FALHA |
| NAO\_GOVERNAVEL | o item não é governável                 | —              |
| VISIBILIDADE    | a evidência está fora do canal pactuado | —              |
| INCLUSAO        | item novo remunerado                    | —              |
| ESTADO          | a faixa do estado apurado               | NC\_MEDIA      |

Primeiro o caso nomeado — *controle em falha glosa tanto* —, depois a faixa do estado, e só então o padrão. Começar pelo estado faria a regra de dimensão nunca pegar, porque todo item não conforme tem estado.

Entre regras do mesmo gatilho, a da **atividade** vence a do contrato inteiro, a de **vigência mais recente** vence a anterior — aditivo sucede o texto, não o apaga —, e a de menor **ordem** desempata.

A **base** escolhe sobre o que o percentual incide: o item que falhou, a atividade inteira quando a falha a compromete, ou o contrato quando o descumprimento é estrutural. As três contas produzem valores muito diferentes. O **teto** limita o percentual efetivo da própria regra, e a memória registra quando ele pegou.

***

### <font color="#15803D">Como o valor de um item é calculado</font>

Na tela **IMR ▸ Memória de cálculo**, escolha o **Período**. Os cartões trazem o contrato, o fornecedor, o valor mensal, o estado do período, a base rateada, a glosa proposta, os itens na base congelada e o **Hash da base**; o quadro **Como este valor foi calculado** diz o método, o teto e o residual do rateio; e **Consequências** lista cada proposta, inclusive as suprimidas por não cumulatividade. **Exportar memória (CSV)** baixa tudo num arquivo só, com o hash da base, e a exportação fica registrada.

O período pertence a um contrato, e o contrato só responde pelas unidades que presta. Por isso o congelamento e a apuração consideram apenas os itens das unidades cobertas — apurar o parque inteiro produziria linhas "não governável, R$ 0,00" que não dizem respeito a ninguém. Período sem contrato continua pegando tudo, que é o modo sombra.

Com o rateio padrão, **por parque da unidade**:

:::BlockQuote
valor do item = valor mensal da atividade ÷ itens daquela unidade na base congelada
glosa do item = valor do item × (100 − percentual de pagamento) ÷ 100
:::

ou, quando há regra cadastrada, o percentual e a base dela no lugar do complemento. O valor fica **gravado na apuração**, e não recalculado na leitura: a apuração é append-only e sustenta glosa, e se o valor viesse de junção, mudar o contrato amanhã mudaria a memória de cálculo de ontem — que existe exatamente para não mudar.

A soma das bases quase nunca fecha exatamente com o valor mensal: dividir o valor de uma atividade por catorze itens deixa centavos de fora. A memória **declara o residual** em vez de deixá-lo sumir — quem confere soma a coluna e compara com o contrato, e alguns centavos sem explicação custam uma reunião. Acima de um real a diferença deixa de ser arredondamento e a tela diz isso: provavelmente há atividade sem item apurado na unidade dela.

***

### <font color="#15803D">Faturamento: o que vai para pagamento no mês</font>

A tela **IMR ▸ Faturamento** (exige `imr:decidir`) é a saída para o financeiro: uma linha por contrato, e não a memória de cálculo.

1.     Em **Referência**, escolha o mês.

2.     Confira cada contrato: **Valor mensal**, **Inclusões**, **Glosa**, **Líquido** e **Situação** — **faturável**, **travado** ou **sem ato**. O total do alto é **Faturável no mês**.

3.     **Exportar bloco (CSV)** baixa o bloco para o financeiro.

Só entra na soma o contrato com ato da Administração registrado (em **Decisões e travas**) e sem trava. Contrato travado aparece com zero e com o motivo, e não some da lista: omiti-lo faria a soma fechar como se ele não existisse. Mês sem período aberto não mostra linha nenhuma.

***

### <font color="#15803D">O teto mensal de glosa</font>

Depois de todas as regras, e **depois da supressão por não cumulatividade**, a glosa acumulada é comparada ao teto: um percentual do valor mensal do contrato, vindo do parâmetro do ANS quando ele existe e do modelo de cálculo quando não — e a memória diz de qual dos dois, porque o modelo é o método padrão do órgão e o parâmetro é o que aquele instrumento negociou.

Passando do teto, o corte é **proporcional**, e não por ordem de chegada: cada item cede a mesma fração. Cortar as últimas glosas até caber faria o valor de um item depender de quando ele foi processado, que é o oposto de reprodutível.

Nada é apagado. O evento guarda o valor bruto e o valor limitado, e a diferença entre as duas colunas é o corte — visível na memória de cálculo em vez de sumir numa subtração que ninguém vê. Um evento próprio registra o excedente, o fator aplicado e o critério.

A ordem importa: o teto vem depois da supressão porque consequência suprimida não pode consumir teto. Fosse antes, a supressão — que existe para não cobrar duas vezes pelo mesmo fato — acabaria reduzindo a glosa dos outros itens.

***

### <font color="#15803D">Revisar a apuração</font>

Na tela **IMR ▸ Apuração**:

1.     Escolha o **Período**. Os cartões mostram contrato, valor mensal, base rateada e glosa proposta no filtro.

2.     Filtre por **Estado**, **Unidade** ou **Buscar item** (identificador ou nome); **limpar** volta a tudo.

3.     Clique no item para abrir **Sinais recebidos no período** e **Revisões**.

4.     Para corrigir, clique em **Revisar esta apuração**, escolha o **Estado**, informe o **% de pagamento** e o **Motivo**, e clique em **Gravar revisão**.

Se o período não estiver ligado a um contrato, a tela avisa: a conformidade é apurada do mesmo jeito, mas a glosa fica só em percentual. O contrato se liga em **IMR ▸ Períodos**, e só antes de congelar a base (veja *O ciclo, passo a passo*); com a base já congelada, a saída é apagar o período e abri-lo de novo escolhendo o contrato.

A apuração pode ser corrigida, e a correção não apaga nada: grava uma revisão nova com estado, percentual, motivo e autor, e a anterior continua inteira e consultável. Exige `imr:decidir`, e não `imr:operar` — mudar o estado apurado à mão muda o que se vai faturar, e isso é ato de quem decide.

A alternativa, deixar corrigir o número no lugar, é o que transforma um instrumento de medição em planilha: quem confere a glosa precisa poder perguntar *o que dizia antes, e quem mudou*, e se a resposta some no UPDATE, a memória de cálculo vira declaração de fé.

***

### <font color="#15803D">O contraditório tem prazo</font>

Na tela **IMR ▸ Contraditório**:

1.     Escolha o **Período**. O quadro **Como funciona neste período** diz o prazo para alegar e o prazo para a Administração decidir. Alegação só entra depois de o contraditório ser aberto, pelo botão **Contraditório** da tela **Períodos**.

2.     Em **Itens abertos para contestação**, ordenados pelo valor em jogo, clique em **registrar alegação** no item, preencha **Fornecedor**, **Alegação** e **Evidência** e clique em **Registrar**.

3.     Em **Alegações apresentadas**, clique em **Acolher** ou **Rejeitar**, escreva o **Fundamento** e clique em **Registrar resposta**.

Acolher não corrige o valor sozinho: a correção é uma revisão na tela **Apuração**.

Abrir o contraditório calcula dois prazos em **dias úteis** sobre o calendário de feriados, a partir dos parâmetros do ANS: até quando o fornecedor pode alegar, e até quando a Administração tem para decidir.

O calendário fica em **Parâmetros do ANS ▸ Calendário de prazos**. Os feriados nacionais vêm de fábrica e não saem — valem por lei, e apagá-los faria o prazo do instrumento divergir do prazo do processo. O municipal é do cliente e se acrescenta ali. Ponto facultativo — Carnaval e Corpus Christi — não é feriado por lei, e a distinção existe no direito administrativo: por padrão ele também não conta, e o parâmetro prazo.considera.ponto.facultativo inverte a escolha.

Quando o calendário não cobre o ano, o cálculo degrada para fim de semana e **registra** o aviso. Prazo silenciosamente errado é pior do que prazo declaradamente aproximado — e num instrumento que recusa alegação fora do prazo, contar feriado como dia útil produz recusa que o fornecedor contesta com razão. Alegação fora do prazo é **recusada**, e a recusa diz até quando era — aceitar em silêncio faria o prazo existir só no papel, e o fornecedor seguinte, que respeitou, teria sido prejudicado por respeitar.

A tela mostra primeiro **o que pode ser contestado**, ordenado pelo valor em jogo, e depois as alegações apresentadas. Antes ela listava só alegações, e no começo do prazo não há nenhuma — a tela nascia vazia justamente no momento em que mais precisa ser usada. A decisão de contestar é econômica antes de ser jurídica, e por isso o montante vem junto.

Acolher ou rejeitar **exige fundamento escrito**. Sem ele a resposta é recusada: o fornecedor tem direito a saber o motivo, e quem revisa depois precisa dele. Acolher não muda a apuração sozinho — a correção é uma revisão, com motivo próprio. São dois atos porque são duas decisões.

***

### <font color="#15803D">O ciclo, passo a passo</font>

Na tela **IMR ▸ Períodos** (conduzir exige `imr:operar`):

1.     Em **Nova referência (AAAA-MM)**, digite o mês (ex.: 2026-10), escolha o **Contrato** e clique em **Abrir período**. Com um contrato ativo só, ele já vem escolhido. A opção **sem contrato (modo sombra)** existe de propósito, e a tela avisa o que custa: a conformidade sai, mas não há valor a ratear e a glosa fica só em percentual.

2.     A coluna **Contrato** mostra de qual contrato é cada período. Enquanto o período está **aberto** e sem base congelada, **ligar a contrato** (ou **trocar**) abre a lista: escolha e clique em **Ligar**. Depois do congelamento a troca não é oferecida — a base congelada é a do contrato, e trocá-lo faria a base de um sustentar a glosa de outro. Se o período aberto **já recebeu sinais**, eles entraram pela cobertura do contrato de antes: quando o contrato novo presta só parte do que o antigo cobria (o caso comum é ligar o período **sem contrato**, que cobre o parque todo), a troca passa e os sinais de itens fora do contrato novo saem do período — a tela diz quantos. Quando o contrato novo presta unidade que o antigo não prestava, a troca é recusada: os sinais dessa unidade foram para outro período ou recusados. Apague o período e abra de novo com o contrato; as plataformas reenviam, e reenviar não duplica.

3.     Na coluna **Avançar**, clique em **Congelar**, depois em **Apurar**, depois em **Consequências** e, se houver o que contestar, em **Contraditório**. Cada botão só acende no estado em que faz sentido; apagado, ele diz **O estado do período não permite esta ação agora** — ou, se o que falta é permissão, qual permissão falta.

4.     **Apagar** remove o período e o que foi calculado nele (base congelada, sinais, apuração, propostas), depois de uma confirmação. É o caminho para o período que foi congelado sem contrato: apague e abra de novo, já com o contrato. Período com decisão registrada não se apaga — decisão é ato da Administração, e o servidor recusa.

5.     A tabela mostra, por período, **Sinais**, **Apurados**, **Propostas** e a **Base congelada** (revisão e hash). A decisão é em **Decisões e travas**.

Abrir, ligar a contrato, apagar e conduzir o ciclo exigem `imr:operar`; sem ela os botões aparecem apagados, com o motivo.

Em **Exceções do ciclo**, abaixo, declare o que o cálculo precisa saber para não cobrar o que foi combinado. Escolha a aba — **Janelas de manutenção**, **Restrições da contratante** ou **Ocorrências abertas** —, clique em **declarar** (na aba de ocorrências, **registrar ocorrência**), preencha os campos (item, unidade ou localidade, início, fim, motivo; na janela, também **RFC** e **Aprovada por**; na ocorrência, **Item**, **Referência**, **Protocolo** e **Resumo**) e clique em **registrar**. Janela exige `imr:operar`; restrição exige `imr:decidir`, porque vira ARRC e afasta glosa.

**Quem registra ocorrência aberta.** A ocorrência aberta chega normalmente pela integração — é o Citsmart X que sabe o que está aberto, e a conta de integração (perfil **Integração do IMR**, com `imr:ingerir`) a envia sozinha. Registrar à mão existe para quando o conector ainda não está ligado, e é preparo do fechamento do mês, como declarar uma janela: por isso pede `imr:operar`, a permissão de quem conduz o ciclo. A rota aceita as duas (`imr:operar` ou `imr:ingerir`) e grava de onde veio: o que foi marcado à mão aparece com a fonte **manual**, e não como se tivesse vindo do conector. `imr:ingerir` continua fora dos perfis de pessoa — a separação entre ingerir e operar é o que impede a conta de integração de conduzir ciclo. Sem `imr:operar`, a aba mostra o botão apagado e explica por quê.

O registro à mão **nunca altera o que veio do conector**. Item, mês e protocolo identificam a ocorrência; se já existe uma com a mesma chave vinda do Citsmart X, registrar à mão é recusado e a mensagem diz de onde veio a existente — registre com outro protocolo, ou deixe que a integração a feche. O caminho inverso vale: o conector pode confirmar ou fechar o que foi marcado à mão, e a ocorrência passa a ser dele. O administrador, que tem as duas permissões, grava **manual** quando não diz a fonte. E a pessoa só registra ocorrência de item cadastrado em **Itens de configuração** e, se tiver acesso restrito por contrato, de item de um contrato que ela alcança.

**1. Abrir o período.** Referência AAAA-MM e o contrato — o período é por contrato, e a mesma referência se abre uma vez para cada um.

**2. Congelar a base.** O motor tira um retrato dos itens ativos e grava o **hash** do conteúdo ordenado. Depois disso, inclusão ou exclusão não altera o período: *não se move o poste depois do tiro*. Recongelar é possível e fica registrado como ato extraordinário — recongelamento silencioso apagaria a razão de existir do congelamento.

**3. Receber sinais.** Três dimensões por item: disponibilidade, registro e controle.

**4. Apurar.** As três dimensões decidem o estado:

| **Estado**     | **Pagamento** | **Quando**                                     |
| -------------- | ------------- | ---------------------------------------------- |
| conforme       | 100%          | as três dimensões OK, com evidência no canal   |
| NC leve        | 80%           | uma dimensão degradada                         |
| NC média       | 50%           | uma dimensão em falha, ou duas degradadas      |
| NC grave       | 20%           | duas falhas, ou uma falha em ativo crítico     |
| não governável | 0%            | sem sinal, ou evidência fora do canal pactuado |



**5. Propor consequências.** Chamada **separada** da apuração, e de propósito: apurar conformidade é seguro desde o primeiro dia, aplicar glosa e travar faturamento não. Poder operar meses sem chamar esta ação é o que permite calibrar limiar com dado real antes de ligar a consequência.

**6. Contraditório.** Fornecedores contestam com evidência.

**7. Decidir.** Ateste, glosa, ARRC, trava ou reabertura — sempre com autor e fundamento. Sem os dois, a transição é rejeitada.

***

### <font color="#15803D">O que o motor propõe, e nunca decide</font>

Na tela **IMR ▸ Decisões e travas** (decidir exige `imr:decidir`):

1.     Escolha o **Período**. Os cartões mostram **Contrato**, **Valor mensal**, **Glosa proposta** e **A atestar**.

2.     Revise **O que o motor propõe**. Para tirar uma proposta da conta, clique em **afastar**, escreva o **Fundamento — obrigatório** e **confirmar**. As afastadas ficam listadas logo abaixo, com **devolver à conta**.

3.     Em **Registrar o ato**, escolha o **Ato** — **ateste**, **glosa**, **ARRC**, **trava trilateral** ou **reabertura** —, escreva o fundamento e clique em **Registrar**.

4.     Em **Decisões registradas**, a decisão não se edita nem se apaga: **retificar** cria um ato novo que substitui o anterior e o deixa visível, marcado como retificado.

**Tempestividade**, no fim da tela, mede quantos dias cada decisão levou.

Cada regra do requisito vira uma proposta registrada, não um ato:

•     **Glosa por nexo** recai sobre o contrato responsável pela falha, e não sobre quem a reportou. Falha de controle imputa C3-SEC; de disponibilidade, C2-OPR; de medição, C1-GOV.

•     **Glosa por visibilidade** quando a evidência não é consultável no canal pactuado — e ela é **suprimida** quando há glosa por nexo sobre o mesmo fato. A supressão aparece na memória de cálculo: supressão silenciosa quebraria a auditabilidade.

•     **Trava trilateral** para item não governável sem ARRC deferida: suspende o faturamento nos **três contratos simultaneamente**. Travar um e faturar os outros é defeito de implementação.

•     **Inclusão remunerada** paga uma vez, com adicional; segunda instalação do mesmo item é bloqueada, não cobrada a menos.

•     **Teto de U7** corta o excedente e registra o corte.

Nenhuma delas vigora até alguém assinar.

***

### <font color="#15803D">Como as plataformas enviam dado</font>

Duas rotas, e o esquema é este — as plataformas se adaptam a ele. Um motor que aceita o formato de cada fornecedor acaba com um tradutor por fornecedor, e cada tradutor é um lugar onde a regra contratual pode ser distorcida sem ninguém ver.

*Os dois conectores*

O catálogo de integrações traz **CitSmart X** (ITSM) e **CitSmart Autonomous** (monitoração e descoberta), com logo próprio. A divisão de papéis é a do requisito e não é arbitrária:

| **Origem**          | **Dimensões**             | **O que ela sabe que a outra não sabe**      |
| ------------------- | ------------------------- | -------------------------------------------- |
| CitSmart Autonomous | disponibilidade, controle | o estado do ativo, e o inventário dele       |
| CitSmart X          | registro                  | se houve atendimento, e se ele saiu do prazo |



Um chamado fechado com SLA rompido é exatamente o fato que a dimensão de registro pede: houve atendimento — logo há registro — e ele saiu do prazo — logo o registro não é conforme. São os dois lados, e só o ITSM os conhece.

*O tenant vem do token, e de nenhum outro lugar*

A chave de serviço pertence a um tenant no momento em que é criada, e o token curto que ela gera carrega esse tenant como reivindicação assinada. Tudo o que a chamada grava entra nesse tenant e tudo o que ela lê sai dele. Mandar X-Tenant-Id, tenant na query ou qualquer variante não muda nada: os cabeçalhos são ignorados, e a política do banco não enxerga a aplicação. Para escrever noutro tenant é preciso outra chave, criada lá.

O perfil certo para essas plataformas é **\`INTEGRACAO\_IMR\`**, que tem `imr:ingerir` e `imr:ler` e nada mais: não conduz ciclo, não decide e não cadastra contrato. Ele foi criado porque o banco recusou — corretamente — dar permissão de escrita ao perfil de Monitoramento: aquele perfil tem token que não expira por inatividade, e credencial perpétua com poder de escrita, uma vez vazada, escreve para sempre.

O teste de segurança da cadeia verifica isso a cada execução: a chave escreve no tenant dela, nenhum cabeçalho troca o destino, item de outro tenant não aparece nem procurando pelo identificador exato, e as rotas de operar, contratar e administrar respondem 403.

**Inventário** — POST `/api/v1/imr/ingestao/ativos, permissão imr:ingerir:`

```javascript
[{
  "icId": "EP-IBAMA-DF-004821",
  "nome": "NB-IBAMA-4821",
  "enderecoIp": "10.12.4.21",
  "tipo": "ENDPOINT",
  "unidadeImr": "U1",
  "localidade": "Brasília DF",
  "criticidade": "ALTA",
  "fonte": "autonomous.edge-agent",
  "inventario": { "so": "Windows 11 23H2", "cpu": "i7-1265U", "memoria_gb": 16 }
}]
```

Nome e endereço bastam para o item existir. O resto do inventário entra livre em inventario e **acumula** entre as fontes: a descoberta de rede sabe o endereço, o agente sabe o hardware, o gerenciador sabe o software. Cada um conhece uma parte, e sobrescrever faria a última mensagem apagar as outras. É por isso que não há esquema fixo ali — o que uma plataforma de descoberta envia hoje não é o que ela envia no ano que vem.

**Sinal** — POST `/api/v1/imr/ingestao/sinais:`

```javascript
[{
  "icId": "EP-IBAMA-DF-004821",
  "referencia": "2026-09",
  "dimensao": "CONTROLE",
  "valor": "OK",
  "detalhe": { "edr": "ativo", "patch_sla": "dentro", "disco_cifrado": true },
  "fonte": "autonomous.edge-agent",
  "coletadoEm": "2026-09-30T23:58:04-03:00",
  "evidenciaUri": "evid://autonomous/2026-09/EP-004821.json",
  "evidenciaHash": "sha256:…",
  "canalPactuado": true
}]
```

Dimensões: DISPONIBILIDADE, REGISTRO, CONTROLE. Valores: OK, DEGRADADO, FALHA, DESCONHECIDO.

Três garantias da interface:

**Idempotência** por item, período, dimensão e instante de coleta. Reenviar o mesmo sinal não duplica.

**Lacuna declarada.** Quem não mediu envia DESCONHECIDO. Ausência silenciosa também nunca vira conformidade, mas declarar ajuda a distinguir "não medi" de "não chegou".

**Rejeição visível.** O que não passa fica na tela de Itens de configuração, com o motivo. Descartar em silêncio é a forma mais cara de perder dado, porque quem enviou acredita que chegou.

Sinal para período já apurado é recusado, e a mensagem diz o que fazer: ele entra no período seguinte com marcação de atraso. Aceitar ali reescreveria período já fechado.

**De qual contrato é o sinal.** O mês tem um período por contrato, e o sinal não diz o contrato: a plataforma descobre pelo item. O sinal entra em **todo período do mês cujo contrato presta a unidade do item** (uma atividade ativa naquela unidade) — no modelo trilateral, os três contratos que atendem a unidade recebem o mesmo sinal, porque cada um apura o próprio período. Período sem contrato, ou de contrato sem atividade cadastrada, cobre o parque todo, a mesma regra do congelamento da base. Quando nenhum período cobre o item — item ainda não inventariado, ou unidade que nenhum contrato presta —, o sinal só entra se o mês tiver **um período só**; com dois ou mais, ele é recusado e aparece em **Itens de configuração ▸ sinais rejeitados**, com o item, a unidade e os contratos do mês no motivo. Antes o sinal ia sempre para o período mais antigo do mês, e os outros contratos apuravam sem sinal — e sem sinal o item é não governável. A resposta traz aceitos (sinais que entraram), gravacoes (linhas novas, uma por período) e repetidos (reenvio do mesmo sinal, aceito e não gravado de novo); a recusa por estado do período é por período, e um contrato já apurado não impede o outro de receber.

**Depois do congelamento, vale a base.** Para período já congelado, quem decide se o item é dele é a **base congelada** (a última revisão), e não o cadastro de hoje. O item que muda de unidade depois do congelamento continua recebendo sinal no período em que ele está sendo apurado — sem isso, ele ficaria sem sinal ali e viraria não governável, glosa de 100% sobre um item que estava bem. E o item incluído depois do congelamento não entra no período congelado: não se move o poste depois do tiro. Item inativo no cadastro conta como não inventariado.

**Uma coisa de cada vez no mesmo período.** Congelar, apurar, ligar ou trocar o contrato e receber sinais travam o período enquanto agem: a segunda operação espera a primeira terminar e lê o estado já mudado. Assim o contrato não troca no meio de um congelamento (a base de um sustentaria a glosa de outro), e o sinal não entra no meio de uma apuração.

**Ocorrência aberta** — POST `/api/v1/imr/ocorrencias`, permissão `imr:ingerir` (a integração) ou `imr:operar` (quem registra à mão na tela Períodos): icId, referencia, protocolo, resumo, fechada e, opcional, fonte. A conta de integração pode dizer a própria fonte (sem dizer, fica citsmart); quem não tem `imr:ingerir` grava sempre manual, diga o pedido o que disser, e quem tem as duas sem dizer a fonte também grava manual. Registro manual que encontra, na mesma chave (item, mês, protocolo), uma ocorrência de outra fonte é recusado com 409 — a marcação à mão não fecha nem reescreve o que veio do conector.

***

### <font color="#15803D">Correlação por modelo de linguagem não entra aqui</font>

A plataforma tem um motor de correlação por LLM, e ele **não toca** em estado de conformidade. O requisito é taxativo e a decisão é acertada: um valor faturado não pode depender de inferência probabilística. Correlação é insumo de priorização e de investigação; estado de conformidade é regra determinística, e por isso a apuração é reexecutável e produz o mesmo resultado.

***

### <font color="#15803D">Painéis do IMR</font>

Dois painéis publicados, porque são duas perguntas feitas em momentos diferentes:

**IMR — faturamento e glosa** responde a pergunta do fechamento: quanto foi apurado, quanto se propõe glosar, e onde a glosa se concentra — por contrato, por unidade e por atividade.

**IMR — conformidade e nexo** responde a pergunta de quem vai tratar: onde a falha está, de quem é o nexo, e o que o motor propôs como consequência.

As três fontes do construtor — apuração, consequências e itens de configuração — são registradas pelo próprio módulo do IMR, e não escritas no catálogo comum. Numa instalação privada que nunca rodou a migração do IMR, o catálogo comum citando imr.apuracao faria a plataforma **falhar ao iniciar**, porque ele é conferido contra o banco na subida.

Uma regra atravessa todas as consultas: **só a revisão vigente**. A apuração é append-only, e um painel que somasse todas contaria o mesmo item duas vezes e mostraria glosa maior que a proposta. Ninguém desconfia de um número num painel.

***

### <font color="#15803D">Simular as origens no Sandbox</font>

Em **Automação ▸ Sandbox** há um bloco **Origens do IMR** — visível só onde o módulo está ligado — que dispara as duas plataformas pelo mesmo caminho de ingestão que elas usariam de verdade, com validação, idempotência e rejeição visível. Um simulador que grava direto na tabela prova que a tabela aceita o dado, que é a parte que nunca falhou.

Escolha o **Período de destino** (é preciso ter um período aberto), **Quantos ativos** e, se quiser ver a glosa, marque **Incluir uma falha**. Depois clique em **Disparar CitSmart Autonomous**, **Disparar CitSmart X — SLA rompido** e **Reapurar o período**; o resultado mostra a base rateada e a glosa proposta. Disparar exige `imr:operar`.

A separação entre as duas é o ponto: dispare só o **Autonomous** e todos os itens ficam sem a dimensão de registro, logo nenhum é conforme. É a conformidade tripla funcionando, e vê-la falhar ensina mais do que qualquer texto sobre ela.

***

### <font color="#15803D">Parâmetro geral e parâmetro de contrato</font>

Na tela **IMR ▸ Parâmetros do ANS** (definir exige `imr:decidir`):

1.     Escolha a aba: **Regra padrão** (vale para todo contrato sem valor próprio) ou **Pactuado por contrato**. Nesta, escolha o **Contrato**; com **Todos — mostre onde se combinou diferente**, a tela lista só o que cada contrato pactuou fora do padrão.

2.     No parâmetro, clique em **alterar**, informe o **Valor** (dentro da faixa mostrada), **Vigente de** e **Por quê** (o ato que fixou o valor), e clique em **Definir**.

3.     Para desfazer, use **voltar ao padrão do requisito** (na regra padrão) ou **voltar ao geral** (no contrato).

4.     Em **Calendário de prazos**, escolha o ano e use **Acrescentar feriado local** — **Data**, **Nome**, **Tipo**, **Abrangência**, **UF**, **Município** — e **Acrescentar**. Os de fábrica não se removem. **remover**, no feriado local, pergunta antes: a data volta a contar como dia útil, e os prazos que passam por ela terminam um dia antes.

O **Histórico de vigências** mostra cada valor definido, desde quando e por quem.

Cada parâmetro pode valer para a instalação inteira ou só para um contrato, e o do contrato vence o geral. A tela de parâmetros tem um seletor de escopo e **diz de onde o valor em vigor veio** — sem isso alguém altera o geral esperando mudar um contrato que tem valor próprio, e o número não se move sem explicação.

Vigência não retroage nem antecipa: um valor com data futura não aparece como vigente, e período já apurado continua com o que valia quando foi apurado.

***

### <font color="#15803D">O que ainda depende da Administração</font>

Os limiares que separam leve, média e grave; a proporcionalidade para item com vigência parcial no período; os percentuais de glosa por visibilidade; o critério objetivo de ARRC; e os prazos de contraditório e de decisão.

Nada disso bloqueia o uso. Todos são **parâmetros versionados por período** — o motor apura com os padrões do requisito e registra tudo, o que permite operar em modo sombra e calibrar com dado real antes de ligar a consequência financeira.
