Install
$ agentstack add skill-kezsmeister-claude-finance-skills-annual-eps ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Annual EPS Table Builder
Extract and display annual Diluted EPS for $0 covering the past 10 fiscal years by browsing Yahoo Finance in Chrome.
Multi-Ticker Support
The argument $0 may contain multiple tickers separated by commas (e.g., AAPL,MSFT,GOOG).
- Parse
$0by splitting on commas and trimming whitespace to get a list of tickers. - Always use the Task tool to launch one subagent per ticker in parallel (all Task calls in a single message). Each subagent should:
- Receive the full instructions from Step 1 onward, with
$0replaced by its single ticker - Be of type
general-purpose - Work independently to extract data and build the tables
- If there is only one ticker, present the subagent's Table 2 (YoY growth rates) directly; skip Table 1 (raw data).
- If there are multiple tickers, combine all results into a single summary table with fiscal years as rows and paired columns per ticker (value + YoY):
| FY | TICKER1 | YoY | TICKER2 | YoY | |----|---------|-----|---------|-----| | 2025 | $X.XX | +X.X% | $X.XX | +X.X% | | 2024 | $X.XX | -X.X% | $X.XX | +X.X% | | ... | ... | ... | ... | ... | | 2016 | $X.XX | – | $X.XX | – |
Replace TICKER1, TICKER2, etc. with actual ticker symbols. Use – for the earliest year's YoY (no prior year data). Do not present separate tables per ticker.
Step 1: Navigate to Yahoo Finance Financials
- List pages and select an existing Yahoo Finance page (or any available page).
- Navigate to
https://finance.yahoo.com/quote/$0/financials/ - Wait for the page to load.
Step 2: Ensure Annual View is Selected
- Take a snapshot of the page.
- The default view should be "Annual". Verify by checking the snapshot. If the "Quarterly" tab is currently selected, save the snapshot to a file, use Grep to find the "Annual" tab element, and click it.
Step 3: Extract Column Headers and Diluted EPS Data
Use evaluate_script to extract the table headers and Diluted EPS row in one call:
() => {
const rows = document.querySelectorAll('div.tableBody div.row');
const result = {};
// Get column headers
const headerRow = document.querySelector('div.tableHeader div.row');
const headers = [];
if (headerRow) {
headerRow.querySelectorAll('div.column').forEach(col => {
headers.push(col.textContent.trim());
});
}
// Find Diluted EPS row
rows.forEach(row => {
const label = row.querySelector('div.column div.rowTitle');
if (label && label.textContent.trim().includes('Diluted EPS')) {
const columns = row.querySelectorAll('div.column');
const values = [];
columns.forEach(col => {
values.push(col.textContent.trim());
});
result.label = 'Diluted EPS';
result.values = values;
}
});
result.headers = headers;
return result;
}
This returns:
headers: Array starting with["Breakdown", "TTM", "MM/DD/YYYY", ...]— fiscal year-end datesvalues: Array starting with["Diluted EPS", "", "", ...]
Step 4: Parse and Organize Data
- Skip the first header ("Breakdown") and first value ("Diluted EPS").
- Skip the TTM column (second header / second value) if present.
- Pair each remaining header (date string like
"12/31/2024") with its corresponding EPS value. - Parse each date to extract the fiscal year-end date and the year.
- Filter to the past 10 fiscal years only. If the current year is incomplete or shows "--", still include it and mark as "N/A".
- EPS values of
"--"should be treated as missing/N/A.
Step 5: Build Table 1 — Annual Diluted EPS
Present a markdown table with this format:
| Fiscal Year End | Diluted EPS |
|-----------------|-------------|
| 12/31/2024 | $X.XX |
| 12/31/2023 | $X.XX |
| ... | ... |
- Show dollar signs on all values.
- Bold the year values.
- Order rows from most recent year at top to oldest at bottom.
Step 6: Build Table 2 — YoY EPS Growth
Calculate YoY growth as: (Current Year EPS - Prior Year EPS) / |Prior Year EPS| * 100
Use the absolute value of Prior Year EPS in the denominator to handle negative EPS correctly.
Present a markdown table:
| Fiscal Year End | Diluted EPS | YoY Growth |
|-----------------|-------------|------------|
| 12/31/2024 | $X.XX | +X.X% |
| 12/31/2023 | $X.XX | -X.X% |
| ... | ... | ... |
- Prefix positive values with
+, negative values naturally show-. - The earliest year in the table will have no prior year to compare, so show "N/A" for that growth cell.
- If either the current or prior year EPS is missing/zero, show "N/A" for that growth cell.
Step 7: Add Notes
Below the tables, include a Notes section mentioning:
- That all EPS values are split-adjusted per Yahoo Finance.
- The company's fiscal year-end date (e.g., "Fiscal year ends December 31" or "Fiscal year ends March 31").
- Any notable spikes or drops and likely causes if obvious (e.g., tax reform, stock splits, one-time items).
- The data source: Yahoo Finance $0 Financials (Annual Income Statement, Diluted EPS).
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: kezsmeister
- Source: kezsmeister/claude-finance-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.