Week #1

Week #1 #

Project description #

Project name: Metalytics #

Code repository: https://github.com/IU-Capstone-Project-2025/Metalytics

Description #

The goal of this project is to develop an analytical system for forecasting the prices of specific metals traded on the Russian financial market. The system aims to explore and implement modern approaches to metal price prediction, analyzing historical price patterns, market volume data, and seasonal trends. Based on this research, the project will propose a set of analytical tools tailored for monitoring and forecasting the behavior of selected metal types β€” such as gold, nickel, or aluminum. In addition to raw forecasting, the system will also generate explainability reports to help interpret observed and predicted price movements. These reports will incorporate contextual factors such as macroeconomic indicators, sanctions, major news events, and global market volatility, providing insights that may influence investor decision-making.

Problem Statement #

One of the major flaws is that private investors and analysis lack access to precious metals with tools involving predictive modeling and explainability based on some external circumstances. This project attempts to fill the gap through a focused system with the ability to forecast metal prices as well as giving the reasons for such forecasts in an interpretable, automated manner.

Team Members #

Team MemberTelegram AliasEmail AddressTrackResponsibilities
Vladimir Toporkov (Lead)@Spectre113v.toporkov@innopolis.universityFrontendFrontend development, team coordination
Ilya Grigorev@DavidVistail.grigorev@innopolis.universityMLR&D, Filtration design, Model Selection, and ML team coordination
Farit Sharafutdinov@Ivenho123f.sharafutdinov@innopolis.universityMLData collection, preprocessing, and delivery
Rail Sharipov@ZilaBura.sharipov@innopolis.universityMLR&D, Exploratory data analysis, and feature engineering
Askar Kadyrgulov@gaha1ada.kadyrgulov@innopolis.universityBackendDevelopment and Operations for backend and ML, scraping functionality
Nikita Solomennikov@Hikisoln.solomennikov@innopolis.universityDesignCreating design for frontend

Brainstorming #

Ideas during brainstorming #

  1. Metalytics - analytical system for forecasting metal prices, Focus on 2–3 metals traded on the Russian financial market. Will include explainability reports.
  2. Idea 2 - forecasting system for company shares. Similar to Metalytics, but applied to public companies listed on the Moscow Exchange.
  3. Idea 3 - Asset allocation recommendation system. Helps users decide how to distribute their finances across stocks, bonds or metals.

Brief market research / problem validation #

Metalytics #

  • Metal price forecasting is a key task in trading and industrial planning.
  • Many private investors lack access to expert analytics tools.
  • Market volatility makes manual analysis difficult.

Conclusion: the idea is timely, realistic, and fills a clear niche.

Idea 2 #

  • Requires analysis of company financials or reports.
  • Much higher volatility due to internal company events (e.g., earnings, scandals).
  • Risk of low-quality predictions due to insufficient public data or noisy trends.

Conclusion: Better to gain experience in metal price analysis with simpler time series first.

Idea 3 #

  • Technically challenging: requires accurate predictions across multiple markets.
  • Relies heavily on external financial APIs and historical datasets.
  • Scope too large for MVP and difficult to evaluate success metrics.

Conclusion: The idea is ambitious but out of scope for initial project phase.

Basic requirements #

Target users and their primary needs #

Our target users include:

  • Retail investors β€” interested in understanding price trends to make better investment decisions in metals.
  • Financial analysts β€” who need support tools for price forecasting, especially with explainability behind trends.
  • Students β€” exploring real-world time series prediction with ML tools.

Their primary needs are:

  • Simple, accessible interface for checking metal forecasts.
  • Trustworthy predictions based on market and external data.

User stories #

  • As an investor, I want to see price forecasts for specific metals so that I can make better trading decisions.
  • As a financial analyst, I want to understand why a model made a prediction so that I can assess its reliability.
  • As a student interested in ML, I want to explore how external events influence time-series models so that I can learn practical ML skills.

Initial scope #

MVP includes:

  • Price prediction for simple and stable metal (gold) to start with
  • Static frontend with data visualization.
  • Backend with baseline ML models

MVP will not include:

  • Advanced deep learning models.
  • Report generation
  • Volatile metals price prediction

Tech-stack #

CategoryTools / LibrariesWhy we chose them
ML / Baselinescikit-learnLightweight, well-documented, great for fast prototyping
Deep LearningKeras, TensorFlow, PyTorch, TheanoFor advanced modeling
MetaheuristicsDEAP, scikit-opt, pyswarmpackageFor experimenting with alternative optimizers
BackendFastAPIFast, modern, built-in OpenAPI docs
FrontendHTML, CSS, JavaScriptSimple static frontend
Data Processingpandas, NumPyStandard tools for loading and transforming data
InfrastructureDocker, docker-composeReproducibility, unified local setup

Project structure #

Metalytics/
β”œβ”€β”€ frontend/           # Client-side application with figma design
β”œβ”€β”€ backend/            # Server-side logic and API handling
β”œβ”€β”€ ml/                 # Machine learning models, training, and inference scripts
β”œβ”€β”€ docker-compose.yml  # Orchestration file for running all services together
β”œβ”€β”€ .gitignore          # Git exclusion rules
└── README.md           # Project overview and instructions

#

Weekly commitments #

Individual contribution of each participant #

  • Vladimir Toporkov - created GitHub repository, prepared initial structure, wrote readme in project repository, wrote full week1 report. Most commits.
  • Farit Sharafutdinov - explored available datasets relevant for the task and developed script for automatic extraction and augmentation of dataset. calculate_indicators.py and fetch_gold_ohlcv.py in Metalytics repository the work result. Commit link.
  • Ilya Grigorev - performed preliminary market behavior analysis of gold prices, investigated filter design principles, and prepared an in-depth exploratory notebook focused on volatility and preprocessing. Commit link.
  • Rail Sharipov - Explored Kaggle and began reviewing external data sources. Wrote down gold exploration details here
  • Askar Kadyrgulov - started studying FastAPI and backend architecture principles. Wrote down API endpoints in readme section and created basic template in backend. Commit of creation endpoints and backend creation.
  • Nikita Solomennikov - Created a logo.png for the site and adapted it to vector form, began learning Figma and UI/UX fundamentals to design user-facing components. Commit of adding logo.

Plans for the next week: #

  • Create the first version of the UI prototype in Figma.
  • Continue collecting and cleaning relevant datasets;
  • Explore and evaluate potential data sources;
  • Start working on the first baseline model for price trend analysis.
  • Define the backend architecture and project structure;
  • Start implementation of basic API endpoints;

Confirmation of the code’s operability #

We confirm that the code in the main branch:

  • [βœ“] In working condition.
  • [βœ“] Run via docker-compose (or another alternative described in the README.md).