Skip to content

AleNard89/SEC-Analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SEC Analyzer

Tool di analisi automatizzata di bilanci SEC (PDF) che utilizza l'API Claude di Anthropic per identificare attivita' di trading speculativo e importi nozionali dei derivati finanziari.

Cosa fa

Il programma prende in input una cartella di bilanci annuali in formato PDF e per ciascuno:

  1. Splitta il PDF in chunk da 50 pagine (ottimizzabile dinamicamente)
  2. Estrae il nome dell'azienda dal primo chunk via Claude API
  3. Analisi Trading - Identifica riferimenti a trading speculativo, proprietary trading, market making, arbitraggio
  4. Analisi Notional - Estrae gli importi nozionali dei derivati finanziari dalle tabelle
  5. Consolida i risultati di tutti i chunk in un unico report JSON
  6. Esporta in Excel con hyperlink OneDrive al PDF sorgente

Architettura

SEC_ANALYZER_by_Claude.py
│
├── RateLimitHandler          # Gestione rate limiting API (min 40s tra chiamate)
├── ChunkSizeOptimizer        # Riduzione dinamica chunk size in caso di errori
│
├── BaseAnalyzer              # Classe base: analisi chunk PDF + consolidamento risultati
│   ├── TradingAnalyzer       # Analisi attivita' di trading speculativo
│   └── NotionalAnalyzer      # Estrazione importi nozionali derivati
│
├── CompanyNameExtractor      # Estrazione nome azienda da PDF
│
└── PDFProcessor              # Orchestratore principale
    ├── split_pdf()           # Split PDF in chunk
    ├── process_single_pdf()  # Pipeline completa per singolo PDF
    └── process_all_pdfs()    # Elaborazione batch di tutti i PDF

Flusso di esecuzione

PDF Input → Split in chunk → Estrazione nome azienda
                                    │
                    ┌───────────────┴───────────────┐
                    ▼                               ▼
            Trading Analysis                 Notional Analysis
            (su tutti i chunk)               (su tutti i chunk)
                    │                               │
                    ▼                               ▼
            Consolidamento                   Consolidamento
                    │                               │
                    └───────────────┬───────────────┘
                                    ▼
                            Output Excel

Setup

1. Clona la repository

git clone https://github.com/AleNard89/SEC-Analyzer.git
cd SEC-Analyzer

2. Installa le dipendenze

pip install anthropic pandas openpyxl PyPDF2 python-dotenv

3. Configura le variabili d'ambiente

Copia il template e compilalo con i tuoi valori:

cp .env.example .env

Modifica il file .env:

# La tua API key Anthropic
ANTHROPIC_API_KEY_MAC=sk-ant-api03-LA_TUA_API_KEY

# Directory contenente i PDF da analizzare
BASE_DIR_MAC=/path/to/your/pdf/directory

# Directory per i file di log
LOG_DIR_MAC=/path/to/your/log/directory

# (Opzionale) URL base OneDrive per generare link ai PDF
ONEDRIVE_URL=https://your-onedrive-url/path/

4. Prepara i PDF

Inserisci i bilanci annuali in formato PDF nella directory configurata in BASE_DIR_MAC.

5. Esegui

python SEC_ANALYZER_by_Claude.py

Output

Il programma genera un file Output.xlsx nella directory base con le seguenti colonne:

Colonna Descrizione
DB Database di provenienza (SEC)
Name Nome dell'azienda estratto dal PDF
Trading (Yes/No) Presenza di attivita' di trading speculativo
Trading (Yes/No) % Confidence score
Summary Sintesi dei risultati trading
Pages Pagine con riferimenti al trading
Page Context Estratti testuali rilevanti
Notional (Yes/No) Presenza di importi nozionali
Notional Summary Sintesi dei risultati nozionali
Notional Pages Pagine con importi nozionali
Notional Page Context Estratti testuali rilevanti
OneDrive Link Hyperlink al PDF sorgente

Dipendenze

Libreria Versione Uso
anthropic >= 0.18.0 Client API Claude
pandas >= 2.0.0 Manipolazione dati
openpyxl >= 3.1.0 Lettura/scrittura Excel
PyPDF2 >= 3.0.0 Split e manipolazione PDF
python-dotenv >= 1.0.0 Caricamento variabili .env

Note

  • Il rate limiting e' gestito automaticamente con un delay minimo di 40 secondi tra le chiamate API
  • In caso di rate limit, il sistema implementa backoff esponenziale (fino a 3 tentativi)
  • La dimensione dei chunk si riduce automaticamente in caso di errori ripetuti (da 50 a minimo 10 pagine)
  • Il modello utilizzato e' claude-3-5-sonnet-20241022

About

Automated SEC financial statement analysis using Claude API for trading activity and derivative notional detection

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages