Skip to content
Product Case Study · Data Engineering · Financial Analytics · Automation

Iran Stock Analysis Pipeline

An automated market-data and analytics pipeline for Iranian equities, combining daily market snapshots, historical analytics, validation, provider fallbacks, and a hosted interactive dashboard.

Daily Market IntelligenceValidated 1Y–10Y historyProvider fallbacksAutomated delivery
Daily cycle
20:00 Tehran
Historical windows
Validated 1Y–10Y
Hosted delivery
Read-only dashboard
Data architecture
Multi-provider fallback
Overview

A repeatable market-intelligence workflow, not a trading product.

I designed and built a Python-based market intelligence pipeline for the Iranian stock market. The system collects and normalizes market data, validates coverage and data quality, calculates historical risk and performance metrics, and publishes a browser-based dashboard automatically.

The hosted pipeline starts its daily calculation cycle at 20:00 Tehran time. Historical periods from 1 to 10 years are displayed only when the underlying source data provides sufficient calendar coverage.

Product boundary

Descriptive analytics with explicit limits.

This is a data engineering, financial analytics, and automation project. It does not provide trading signals, guaranteed returns, portfolio recommendations, or investment advice.

Product framing

A repeatable answer to fragmented coverage and unreliable market-data workflows.

Problem

Iranian market data can vary by provider, availability, and historical coverage. A polished output is only useful if unsupported periods and incomplete data stay visible instead of being silently treated as complete.

User / use case

Research-oriented users need a broad daily market view plus repeatable historical descriptive analytics, while credentials and heavy calculation remain outside the browser.

Key product decisions

Validate coverage before publishing labels, normalize providers into one analytics path, and separate hosted broad-market delivery from a more flexible local research workflow.

Architecture

Collection and computation stay separate from browser delivery.

Heavy calculations, provider access, validation, and publish decisions happen before deployment. The browser receives generated, validated outputs rather than credentials or raw provider logic.

System capabilities

Core capabilities across data, analytics, reliability, and delivery.

Daily market snapshot

Broad-market symbol coverage, market breadth, gainers and decliners, plus volume and value rankings.

Historical analytics

Selectable 1Y–10Y periods, period return, annualized volatility, maximum drawdown, and TEDPIX-relative analytics where overlapping data is sufficient.

Search and export

Browser-side search, filtering and sorting, with CSV export for validated published outputs.

Data quality controls

Historical-coverage checks, normalized provider outputs, and explicit publish rules that prevent unsupported periods from appearing complete.

Provider resilience & automation

Multi-provider market-data architecture with fallbacks, automated GitHub Actions processing, generated static data, and scheduled deployment.

Local research workflow

Python CLI support for custom Persian ticker symbols, arbitrary Jalali date ranges, provider selection, caching, CSV exports, and TEDPIX-relative analysis.

Operating modes

Hosted delivery for broad-market intelligence; local Python for custom research.

Online mode

Read-only Daily Market Intelligence Dashboard.

Provider credentials and heavy calculations stay outside the browser. Historical analytics are precomputed during the scheduled pipeline, and the dashboard renders only the validated outputs produced by that run.

  • Provider credentials stay server-side.
  • Historical windows appear only after coverage checks pass.
  • Incomplete full-market historical output can be represented as an explicit pending state rather than as complete data.
Local mode

Flexible workflow for custom symbols and date ranges.

The local Python workflow supports Persian ticker symbols, arbitrary Jalali start and end dates, provider selection, caching, reusable CSV exports, and TEDPIX-relative analysis.

  • Custom Persian ticker lists without translating symbols.
  • Arbitrary Jalali ranges instead of fixed dashboard windows.
  • Provider selection and caching for repeatable local analysis.
Reliability & validation

Data quality is treated as product behavior.

Upstream limitations stay visible instead of being hidden behind a polished interface. Validation determines what the user is allowed to see.

Coverage before labels

A 1Y–10Y label is published only when the source series has enough calendar coverage for that period.

Provider fallbacks

Multiple providers reduce dependence on a single upstream source and feed a normalized analytics path.

Precomputed analytics

Risk and performance metrics are produced before deployment so hosted interactions remain lightweight.

Credentials stay private

Provider keys and credentials remain in server-side environments or automation secrets and are never shipped with dashboard data.

Important interpretation

Long-horizon metrics are raw, unadjusted descriptive price analytics.

Corporate actions may affect long-term price series. These metrics should be read within the project’s coverage, validation, and raw-price data boundaries.

Daily Market Intelligence Dashboard

Explore the validated dashboard output.

The public demo is the read-only delivery layer of the pipeline. It renders the latest generated market snapshot and the historical windows that passed the project’s validation rules.

Resume PDF

Choose resume language

نسخه رزومه را انتخاب کنید.