GMI · TECHNOLOGY OBSERVATORY // ALL SYSTEMS NOMINAL
ENGINEERED BY LEOPARD DATA

Report Generator Alpha

The pioneering .NET Console application that processes jobs, fetches symbol data, generates comprehensive Excel and JSON reports, and provides advanced ML.NET-powered forecasting capabilities.

ALPHA PROCESSING PIPELINE
rendering diagram…
sequenceDiagram
    participant DB as Database
    participant ALPHA as ReportGeneratorAlpha
    participant FMP as FMP API
    participant MLNET as ML.NET Engine
    participant EXCEL as EPPlus - Excel
    participant BLOB as Azure Blob
    DB->>ALPHA: Job status NewReadyForProcessing
    ALPHA->>DB: Mark PickedUpAndProcessing
    ALPHA->>DB: Load symbol list
    ALPHA->>FMP: Fetch quotes - history - financials
    FMP-->>ALPHA: Market data for all symbols
    ALPHA->>MLNET: Run forecasting models
    MLNET-->>ALPHA: Revenue - cash flow - health scores
    ALPHA->>EXCEL: Generate xlsx workbook
    ALPHA->>EXCEL: Generate HTML report
    EXCEL-->>ALPHA: Files ready
    ALPHA->>BLOB: Upload xlsx - html - json
    BLOB-->>ALPHA: Upload confirmed
    ALPHA->>DB: Mark CompletedWithSuccess
    ALPHA->>DB: Send completion notification
Four sequential stages from job acquisition through Azure Blob upload and completion notification.

Report Generator Alpha Engine

First of Its Kind: Report Generator Alpha is the original .NET Console application that established Grade My Investments' report generation capabilities. It reads jobs from the database, processes symbol lists, and outputs professional Excel and JSON reports.
Console Application Architecture
> Gmi.ReportGeneratorAlpha.Console.exe
> Checking for pending jobs...
> Found Job ID: 12345
> Loading symbol list: Tech Portfolio (45 symbols)
> Fetching market data...
> Generating Excel report...
> Generating JSON data file...
> Uploading to Azure Blob Storage...
> Updating database records...
> Job 12345 completed successfully!
Core Workflow
  • Job Processing: Polls database for jobs with status "NewReadyForProcessing"
  • Symbol List Retrieval: Fetches associated symbol lists from database
  • Data Collection: Retrieves market data for all symbols
  • Excel Generation: Creates comprehensive workbook with multiple sheets
  • JSON Export: Outputs raw data in machine-readable format
  • Azure Storage: Uploads files to blob storage with proper folder structure

Database-Driven Processing

Job Processing Pipeline

  • Query database for jobs with JobStatusTypeID = 1 (NewReadyForProcessing)
  • Update job status to JobStatusTypeID = 2 (PickedUpAndProcessing)
  • Load associated symbol lists from jobsymbollists table
  • Retrieve symbol details from symbollistitems table

  • Fetch real-time quotes for all symbols in the list
  • Retrieve historical price data
  • Collect fundamental metrics (P/E, market cap, dividends)
  • Calculate technical indicators
  • Process data in parallel for performance

  • Create Excel workbook using EPPlus library
  • Generate multiple worksheets with formatted data
  • Add charts and conditional formatting
  • Export raw data to JSON format
  • Create file metadata records

  • Upload Excel file to Azure Blob Storage
  • Upload JSON file to Azure Blob Storage
  • Insert file records in files table
  • Update job status to JobStatusTypeID = 4 (CompletedWithSuccess)
  • Record completion timestamp and send notifications

Performance Characteristics

Processing Metrics
Metric Performance Notes
Symbols per Second 10-15 With full analysis
Concurrent Threads 8-16 Based on CPU cores
Memory Usage 2-4 GB For 500 symbol report
Report Generation Time 30-60 sec 100 symbols average
Data Points Processed 1M+ Per large report

Linux Deployment & Logging

Console Application Invocation on Linux

Report Generator Alpha is invoked on-demand by the report engine when jobs are queued for processing. Running as a .NET console application on Ubuntu 20.04, it provides detailed logging output for monitoring and debugging with structured logging, timestamp precision, and comprehensive error tracking.

Report Generator Alpha Log File Output on Linux
Log Features
  • Timestamps: Millisecond precision with ISO 8601 format
  • Log Levels: Debug, Info, Warning, Error, Critical
  • Context: Job IDs, symbol counts, processing stages
  • Performance: Execution timing and memory usage
  • File Locations: Output paths and blob storage URLs
Report Engine Integration
  • On-Demand Execution: Invoked by the report engine when jobs are queued
  • Console Application: Runs as standalone .NET console process
  • Process Lifecycle: Starts, processes job, outputs logs, then exits
  • Database Polling: Checks for jobs with "NewReadyForProcessing" status
  • Log File Output: Structured logging to file system for monitoring
Log Analysis Features
Processing Stages
  • Job acquisition and validation
  • Symbol list loading and processing
  • Market data fetching with retries
  • Report generation and formatting
  • File upload and database updates
Error Handling
  • API rate limit exceptions
  • Network connectivity issues
  • Data validation failures
  • File system I/O errors
  • Database connection timeouts
Performance Metrics
  • Symbols processed per minute
  • Memory consumption tracking
  • Database query execution times
  • File upload speeds and sizes
  • End-to-end job completion times
Report Engine Invocation
# Report engine invokes the console application
./Gmi.ReportGeneratorAlpha.Console

# Manual execution for testing
dotnet Gmi.ReportGeneratorAlpha.Console.dll

# View application logs
tail -f /var/log/gmi/reportgen-alpha.log

# Check for running processes
ps aux | grep ReportGeneratorAlpha

ML.NET Forecasting Integration

Machine Learning Capabilities: Report Generator Alpha now incorporates Microsoft's ML.NET framework to provide advanced forecasting and prediction capabilities directly within the report generation process.
Forecasting Features
Financial Forecasting
  • Revenue Forecasting: Predicts future quarterly revenue using historical patterns
  • Cash Flow Prediction: Projects free cash flow trends up to 4 quarters ahead
  • Debt Analysis: Forecasts debt levels and debt-to-equity ratios
  • Equity Valuation: Predicts stockholders' equity progression
Market Analysis
  • Anomaly Detection: Identifies unusual patterns in trading volume and price movements
  • Health Scoring: Generates composite financial health scores (0-100)
  • Risk Assessment: Evaluates company financial stability metrics
  • Time Series Analysis: Multi-horizon forecasting with confidence intervals
ML.NET Processing Workflow
> Initializing ML.NET forecasting service...
> Loading historical financial data for AAPL
> Training revenue forecasting model...
> Generating 4-quarter revenue forecast: $95.2B, $98.1B, $101.5B, $104.8B
> Confidence intervals: 85%, 82%, 78%, 75%
> Detecting anomalies in volume data...
> Found 3 volume spikes in last 30 days
> Calculating financial health score: 87/100
> Adding forecasts to Excel report...
Algorithms Used
Exponential Smoothing Linear Regression Moving Averages Seasonal Decomposition
Output Integration
  • Forecasts embedded in Excel worksheets
  • JSON output includes ML predictions
  • Confidence intervals for all forecasts
  • Visual charts showing projected trends

Technical Implementation

Core Technologies
Processing Engine
  • C# .NET 10 - Core runtime
  • Task Parallel Library - Concurrency
  • LINQ - Data operations
  • Async/Await - Asynchronous I/O
Report Generation
  • EPPlus - Excel generation
  • System.Text.Json - JSON serialization
  • OxyPlot - Chart generation
Key Algorithms
// Parallel symbol processing
await Parallel.ForEachAsync(symbols, async (symbol, ct) =>
{
    var marketData = await FetchMarketData(symbol);
    var technicals = CalculateTechnicals(marketData);
    var analysis = PerformAnalysis(technicals);
    results.Add(symbol, analysis);
});
Alpha Features
  • Smart Caching
    Reduces API calls by 60%
  • Error Recovery
    Automatic retry logic
  • Rate Limiting
    Respects API quotas
  • Memory Optimization
    Streaming large datasets
Supported Indicators
  • • RSI
  • • MACD
  • • Bollinger Bands
  • • Stochastic
  • • ATR
  • • SMA/EMA
  • • Volume Profile
  • • Fibonacci
  • • Pivot Points
  • • Williams %R
Data Sources
  • Yahoo Finance API
  • Alpha Vantage
  • IEX Cloud
  • Financial Modeling Prep
  • Custom data feeds
Evolution Roadmap
  • Alpha Current
    Traditional Excel/JSON reports
  • Beta Planned
    Real-time dashboards
  • Charlie Future
    AI-powered insights
  • Delta Future
    Options & derivatives focus
Future generators will be developed based on user feedback and specific use case requirements.