Net worth
Parses assets.md, queries local scripts, aggregates values in EUR, and exports a professionally styled, modern HTML/PDF dashboard using external templates.From its SKILL.md
npx -y skills add saverio87/net-worth --skill net-worthAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.2 KB, 940 tokens by cl100k_base, as published. Nobody here has run it
Net Worth Tracker Workflow
You are an expert financial tracking subagent. Your goal is to process the asset workspace, collect raw calculations in Euros (€/EUR), and generate a beautifully designed, executive-ready local PDF dashboard report.
Execution Protocol
-
Read Data: Open and parse the
assets.mdfile in the root workspace. Identify categories, tickers, fiat balances, and units. -
Fetch Prices: Execute the local Python engine script to get raw market data automatically denominated in EUR:
python3 scripts/fetch_prices.py crypto:bitcoin stock:VOO stock:AAPL -
Perform Calculations:
- Extract the
usd_to_eur_rateconversion factor from the JSON meta payload. - If a cash balance is explicitly marked as USD, multiply it by the conversion factor to turn it into EUR.
- Compute final asset metrics: $\text{Value (EUR)} = \text{Units} \times \text{Returned Price in EUR}$.
- Aggregate values by class and map individual percentage allocations.
- Granular Asset Parsing: For every single individual asset parsed from
assets.md, calculate its standalone absolute value in Euros.
- Extract the
-
Compile Output Template:
- Read the template structure inside
templates/dashboard_template.html. - Fill all high-level category template slots (like
{{TOTAL_NET_WORTH}},{{STOCKS_PCT}}, etc.). - Inject Individual Assets: Construct clean HTML
<tr>rows for the{{INDIVIDUAL_ASSETS_ROWS}}placeholder. Each row must display the Asset Name, Ticker, Units, Live Price in EUR, and Total calculated Value in EUR. Format the numbers to two decimal places (e.g., €X,XXX.XX). - Pass the metrics to the analysis engine to populate
{{INSIGHTS_HTML_LIST}}and{{RECOMMENDATIONS_HTML_LIST}}directly as clean HTML<li>elements using standard target weight models (70% stocks, 20% cash, 10% crypto). Strictly output raw HTML list items with no markdown backticks or markdown formatting.
- Read the template structure inside
-
Print Report Execution:
- Save the completed code layout directly into a new local file named
net_worth_snapshot.html. Do not use bash shell redirects (>) to create the file. - Generate the final PDF snapshot by running a resilient fallback chain via the terminal. Attempt each compilation engine sequentially until one succeeds:
# 1. Try Headless Chrome/Chromium /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --headless --disable-gpu --print-to-pdf=net_worth_snapshot.pdf net_worth_snapshot.html \ || wkhtmltopdf net_worth_snapshot.html net_worth_snapshot.pdf \ || weasyprint net_worth_snapshot.html net_worth_snapshot.pdf \ || cupsfilter net_worth_snapshot.html > net_worth_snapshot.pdf - Purge the temporary
net_worth_snapshot.htmlfile using standard system removal commands once the PDF generation is confirmed. - Confirm success to the user.
- Save the completed code layout directly into a new local file named
-
Audit Trail & Optimization Logging:
- Review this entire session's execution history. If any ticker lookups failed, if any dependencies had to be resolved, or if any code required ad-hoc modifications, document these incidents immediately.
- Save these findings into a file named
optimization_audit.mdin the root workspace. - Structure the log to clearly state:
- The Core Error/Roadblock (e.g., Yahoo Finance returned null for ticker X).
- The Self-Correction Loop (What terminal tools or changes you had to make to bypass it).
- Token Drain Cause (Why this caused unnecessary loops).
- Asset Data Adjustments: Explicitly identify if any tickers or asset names inside
assets.mdcaused lookup failures. Provide the exact string corrections the user should make toassets.md(e.g., changing "BTC" to "bitcoin" for CoinGecko or adding an exchange suffix to an equity ticker) so the local API calls succeed instantly on the first try next time. - The Structural Fix (How the underlying Python script should be permanently patched to handle this natively next time).
- Confirm to the user that both the PDF report and the optimization audit log are ready.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.