# Financial Anomaly Detection

<figure><img src="/files/fCIC4riFG3SpXjUAiG29" alt=""><figcaption></figcaption></figure>

## Visão Geral do Projeto

Este projeto demonstra como utilizar o **Gaio DataOS** para construir uma aplicação capaz de **detectar anomalias financeiras** com base em informações de transações financeiras.

Por meio dessa aplicação, os usuários podem:

* Importar dados de transações financeiras
* Detectar, classificar e visualizar análises
* Obter insights sobre anomalias financeiras presentes em suas transações

***

## Etapas de Desenvolvimento

### 1. Extração de Dados

<figure><img src="/files/0zMXdH4Z02WUBezxkcDL" alt=""><figcaption></figcaption></figure>

* Conexão com **ClickHouse Cloud** ou importação de arquivos **CSV**

  * Utilização de **builder tasks** no Gaio para:
    * Importar dados
    * Limpar e transformar dados

  O processo de importação resulta em uma tabela flat chamada **`tb_financial_anomaly`**.

***

### 2. Detecção de Anomalias

<figure><img src="/files/6MyzYM2Jhs4O4n2TRDzy" alt=""><figcaption></figcaption></figure>

A lógica de detecção é dividida em **SQL builders** para identificar os seguintes tipos de anomalias:

* Despesa elevada (*Large Expense*)
* Transação duplicada (*Duplicate Transaction*)
* Transação fora do horário (*After Hours Transaction*)
* Reembolso repetido (*Repeat Reimbursement*)
* Pico de receita (*Revenue Spike*)
* Aumento anormal de reembolsos (*Refund Surge*)

Cada anomalia detectada recebe:

* Um **score de severidade**
* Um **anomaly\_id** único
* Metadados enriquecidos

{% hint style="info" %}
Se múltiplas anomalias ocorrerem na mesma transação, cada uma receberá um **anomaly\_id** diferente.
{% endhint %}

A consolidação final é realizada na tabela **`detected_anomalies`**.

***

### &#x20;3. Dashboards e Interfaces

#### 3.1 Monitor de Transações Suspeitas

<figure><img src="/files/tDC43Ztc6lgm92w738Ie" alt=""><figcaption></figcaption></figure>

*

```
* Utiliza as tabelas **`detected_anomalies`** e **`anomaly_classification_history`**
```

```
* Métricas como:
  * Quantidade total de anomalias
  * Número de anomalias por tipo de classificação
  * Distribuição por severidade

Essas análises são criadas com **Report Tasks** e exibidas em dashboards.

* Um conjunto de filtros é criado com a **Form Task**, permitindo filtrar por:
  * Data
  * Tipo de transação
  * Setor
  * Categoria
  * Tipo de pagamento

Também são exibidas:

* Uma tabela flat com as classificações mais recentes
* Uma tabela com todas as anomalias que ainda precisam ser classificadas

A partir da tabela de anomalias pendentes, os usuários podem classificar uma anomalia ou visualizar detalhes específicos clicando em seu **ID**.
```

***

#### 3.2 Classificação de Anomalias

<figure><img src="/files/LKVsmx829ncZEHsd6cKB" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/IvYyt3vQtSmVoyESk3rF" alt=""><figcaption></figcaption></figure>

* Ao clicar no ícone mais à esquerda na tabela de anomalias pendentes, o usuário pode classificar uma anomalia por meio da **Form Task**
* Alguns campos do formulário são preenchidos automaticamente com informações da anomalia selecionada, utilizando **parâmetros**

  Após o envio do formulário, o processo **Update Anomaly Classification** é executado, composto por duas etapas principais:

  1. Uma **Update Task** edita a linha da anomalia na tabela **`detected_anomalies`**
  2. Uma **Incremental Builder Task** adiciona uma nova linha com a anomalia e sua classificação na tabela **`anomaly_classification_history`**

***

#### 3.3 Detalhes da Anomalia

<figure><img src="/files/L6nzISq4ClgBAGNLH2yw" alt=""><figcaption></figcaption></figure>

* Ao clicar em um **anomaly\_id**, é aberto um dashboard dedicado

  **Tabelas utilizadas:**

  * `detected_anomalies`
  * `tb_financial_anomaly`
  * Utilização de **parâmetros** para filtragem dinâmica

  O dashboard inclui:

  * Card de nível de risco
  * Insights baseados no tipo de anomalia
  * Gráficos:
    * Linha (médias mensais)
    * Barras (por setor e categoria)
    * Pizza (por cliente ou fornecedor)
  * Tabela de histórico de transações

  Todo o layout é estilizado com **HTML & CSS**.

***

#### 3.4 Dashboards de Anomalias Confirmadas e em Investigação

<figure><img src="/files/lUpnxL5mfabXVXVxg6Q9" alt=""><figcaption></figcaption></figure>

* Dois dashboards dedicados utilizando a tabela **`detected_anomalies`**

  * Exibem:
    * Anomalias confirmadas
    * Anomalias pendentes

  Construídos com **Report Task**.

***

### Tecnologias Utilizadas

* Workflows visuais de **ETL** no Gaio DataOS
* Tabelas temporárias e finais para versionamento de dados
* **Report Task** e **Content Task** para criação de dashboards adaptativos e visualmente ricos
* Dashboards dinâmicos com filtros, gráficos e tabelas
* **HTML e CSS** para estilização e responsividade
* **Form Task** para permitir a classificação de anomalias sem sair do dashboard
* **Parâmetros** para passagem de dados e navegação fluida entre telas

***

### Resultados Esperados

* Desenvolvimento mais rápido da lógica de detecção de anomalias
* Dashboards centralizados para monitoramento
* Melhor controle financeiro e rastreabilidade para auditorias
* Acesso seguro por meio de usuários e grupos com permissões definidas

***

### Download this project

{% file src="/files/cVCgQPURoPrCyL4fmLZT" %}

{% file src="/files/kKdwuJosibZBIusEjlsU" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.gaiodataos.com/gaio-dataos-portuguese/casos-de-uso/financial-anomaly-detection.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
