name: financial-data-template-populator
description: Populates an Excel template with financial data (stock prices, market trends, ownership) for a specified company. Reads requirement files, fetches data from Yahoo Finance, analyzes template structure, formats data, writes to Excel, and renames the output file.
Instructions
1. Understand the Request & Locate Files
The user will request to populate an Excel template with financial data for a specific company (e.g., NVIDIA/NVDA). They will provide:
- An Excel template file (e.g.,
results_template.xlsx).
- A data requirements file (e.g.,
data.txt).
- A formatting instructions file (e.g.,
tips.txt).
- A final output filename (e.g.,
results.xlsx).
First, read the requirement files to understand the exact data needed and formatting rules.
Tool Calls:
- Use
filesystem-read_multiple_files to read data.txt and tips.txt.
2. Analyze the Excel Template Structure
Examine the provided Excel template to understand its sheets, headers, and data ranges.
Tool Calls:
- Use
excel-get_workbook_metadata on the template file to list its sheets.
- Use
excel-read_data_from_excel on each sheet to see the column headers and empty data cells.
3. Fetch Required Financial Data
Based on the requirements (data.txt), fetch the necessary data. Common requirements include:
- Stock Info & Fundamentals: Use
yahoo-finance-get_stock_info.
- Major Holders Summary: Use
yahoo-finance-get_holder_info with holder_type: "major_holders".
- Institutional Holders Details: Use
yahoo-finance-get_holder_info with holder_type: "institutional_holders".
- Historical Stock Prices: Use
yahoo-finance-get_historical_stock_prices for a date range, or yahoo-finance-get_stock_price_by_date for specific quarter-end dates.
Key Data Processing:
- Identify quarter-end dates (e.g., 2024-09-30 for Q3 2024).
- Calculate Market Cap =
Stock Price * Shares Outstanding.
- Convert units as required (e.g., shares to millions, value to billions).
4. Format Data According to Rules
Strictly apply the formatting rules from tips.txt (e.g., "Round all numbers to two decimal places", "If the data is unavailable, fill in NaN").
5. Populate the Excel Template
Write the formatted data into the correct cells of the template.
Tool Calls:
- Use
excel-write_data_to_excel for each sheet, specifying the start_cell (e.g., "B2" for data below headers).
6. Finalize and Rename the File
After populating all sheets, rename the file to the user's requested output name (e.g., from results_template.xlsx to results.xlsx).
Tool Calls:
- Use
filesystem-move_file.
7. Verify Completion
Optionally, list the directory contents to confirm the final file exists and read back a sample of the data to ensure correctness.
Tool Calls:
- Use
filesystem-list_directory.
- Use
excel-read_data_from_excel on the final file.