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_filesto readdata.txtandtips.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_metadataon the template file to list its sheets. - Use
excel-read_data_from_excelon 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_infowithholder_type: "major_holders". - Institutional Holders Details: Use
yahoo-finance-get_holder_infowithholder_type: "institutional_holders". - Historical Stock Prices: Use
yahoo-finance-get_historical_stock_pricesfor a date range, oryahoo-finance-get_stock_price_by_datefor 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_excelfor each sheet, specifying thestart_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_excelon the final file.