METRICS MARKETPLACE • SANDBOXED WEBASSEMBLY MODULES

Metrics Marketplace

Every metric is a small WebAssembly module with a manifest that declares the data it reads. It runs in a sandbox with no file, network or system access, against your portfolio only.

  • 17metrics in the repository
  • 0I/O imports allowed
  • 4 MiBmemory ceiling
  • MITopen source license
Catalog

Reviewed metrics

Bundled with the application and reviewed by pull request. Add any of them to a portfolio under Preferences → Metrics.

Total Portfolio Value

Valuation • v1.0.1 • MIT • by Christos Georgiou

Live net worth of the portfolio. It adds the market value of every open position to the uninvested cash balance, with foreign assets converted into your base currency.

This is the single number that answers 'what is my portfolio worth right now'. Use it as the headline figure and as the baseline for allocation and risk decisions.

Portfolio totals

Day Gain / Loss

Performance • v1.0.1 • MIT • by Christos Georgiou

Value change of your open positions during the current trading session, measured against the previous official close of each holding.

Shows how today's market moves hit your capital. It separates short-term noise from your long-term result and tells you if a market event touched your holdings.

Portfolio totals

Lifetime Total Gain

Performance • v1.0.1 • MIT • by Christos Georgiou

All-time net result since the first transaction. It combines unrealized gains, realized profits from closed positions, dividends, and interest, minus broker fees.

The honest measure of the wealth your portfolio created. Daily and monthly swings cancel out, so you see if your strategy works over the full holding period.

Portfolio totals

Cash Liquidity

Liquidity • v1.0.1 • MIT • by Christos Georgiou

Uninvested cash held in the portfolio, calculated from deposits, withdrawals, buys, sells, dividends, and fees.

Free cash is your reaction capacity. It shows the money available for a new position or a market drop, and how much of your portfolio currently earns no market return.

Portfolio totals

Invested Capital

Principal • v1.0.1 • MIT • by Christos Georgiou

Total principal you moved into the portfolio, that is all deposits minus all capital withdrawals.

Separates your own savings from market growth. It is the denominator of your return, so it tells you if the portfolio grew because of performance or because of new money.

Portfolio totals

Current Holdings Cost

Principal • v1.0.1 • MIT • by Christos Georgiou

Acquisition cost of the positions you hold today, in base currency, without closed positions and without cash.

Compare it against the market value of your holdings to read the unrealized gain directly. It is also the cost basis that a future sale will use.

Portfolio totals

Realized P&L

Income & Yield • v1.0.1 • MIT • by Christos Georgiou

Profit or loss locked in by executed sells, calculated against the cost basis of each sold position.

Realized results cannot be taken back by a later market drop, and they usually drive your tax bill. Watch it to judge your exit decisions, not only your open positions.

Portfolio totals

Dividends & Interest

Income & Yield • v1.0.1 • MIT • by Christos Georgiou

All cash distributions credited to the portfolio: dividends from equities and funds, plus interest and coupon payments.

Income arrives independently of price moves and keeps compounding when reinvested. It shows the cash yield of your holdings during flat or falling markets.

Portfolio totals

Broker Fees

Costs • v1.0.1 • MIT • by Christos Georgiou

Sum of all commissions and order fees charged on your transactions since inception.

Fees are a certain loss while returns are not. Tracking the total exposes expensive trading habits or an expensive broker before they erode your performance.

Portfolio totals

Taxes Withheld

Costs • v1.0.1 • MIT • by Christos Georgiou

Tax amounts already deducted at the source on your transactions and distributions, for example withholding tax on dividends.

Your net result is what remains after tax. The total helps you prepare a tax declaration and compare accounts or jurisdictions on an after-tax basis.

Portfolio totals

Portfolio Beta

Risk • v1.0.0 • MIT • by Christos Georgiou

Average beta of your positions, weighted by market value. Beta comes from Financial Modeling Prep and measures how much a security moved with the broad market. Holdings without a beta are left out; the sub-line shows how much of the portfolio is covered.

A beta of 1.3 means the portfolio tends to move 30% more than the market, up and down. It tells you how hard a market sell-off would hit you before it happens.

Holdings Fundamentals

Portfolio P/E

Valuation • v1.0.0 • MIT • by Christos Georgiou

Price-to-earnings ratio of your stock holdings as one figure. It is the weighted harmonic mean of each trailing P/E from Financial Modeling Prep, which equals the total price divided by the total earnings you own. Loss-making companies and funds are left out.

A high P/E means the market prices in strong growth; a low one means cheap or troubled companies. Compare it with the market (around 20 for the S&P 500) to see if you hold an expensive or a cheap portfolio.

Holdings Fundamentals

Dividend Yield

Income • v1.0.0 • MIT • by Christos Georgiou

Trailing twelve month dividend yield of your stock holdings, weighted by market value, from Financial Modeling Prep. Stocks that pay nothing count as zero. Funds are left out because their yield is not in the data. The sub-line estimates the yearly income of the covered holdings.

Yield shows how much cash your stocks return without selling anything. A falling yield on the same holdings can mean cut dividends; a very high one can mean the market doubts the payout.

Holdings Fundamentals

Analyst Upside

Analysts • v1.0.0 • MIT • by Christos Georgiou

Gap between the current price and the consensus analyst price target of each stock, weighted by market value. Targets come from Financial Modeling Prep. Holdings without a target, and funds, are left out.

Positive upside means analysts expect your stocks to rise; a negative figure means you hold names that trade above their targets. Use it as a sentiment check, not a forecast: targets lag prices.

Holdings Fundamentals

DCF Upside

Valuation • v1.0.0 • MIT • by Christos Georgiou

Gap between the price and the discounted cash flow value of each stock, weighted by market value. DCF values come from the Financial Modeling Prep model. Each upside is capped at +300% so one extreme model result does not dominate. Funds are left out.

A DCF value estimates what future cash flows are worth today. A portfolio well below its DCF values holds cheap businesses by that model; well above means you pay for growth the cash flows do not yet show.

Holdings Fundamentals

Piotroski Quality

Quality • v1.0.0 • MIT • by Christos Georgiou

Average Piotroski F-score of your stocks, weighted by market value. The score counts nine pass or fail checks on profit, debt and efficiency from the latest filings, as reported by Financial Modeling Prep. Funds are left out.

Scores of 7 and above point to improving fundamentals, 3 and below to weakening ones. A falling portfolio score warns that the businesses you own are getting weaker even when prices have not moved yet.

Holdings Fundamentals

Distress Exposure

Risk • v1.0.0 • MIT • by Christos Georgiou

Share of the value of your stocks whose Altman Z-score is below 1.8, the distress zone, as reported by Financial Modeling Prep. The score combines working capital, retained earnings, operating profit, market value and sales. Funds are left out. Banks and insurers often score low by design.

Companies in the distress zone have a higher risk of financial trouble in the next two years. A rising share tells you to check the balance sheets of those positions before a credit event does it for you.

Holdings Fundamentals
Data scopes

What a metric can see

A module receives only the scopes its manifest requests. The application spells them out before a metric is added, and a module installed from a URL stays marked unverified.

ScopeGrantsShown to the user as
portfolio.summaryAggregate figures only: totals, cash, fees, taxes, weights. No symbols.Portfolio totals. No individual positions.
portfolio.holdingsPer-position rows: symbol, shares, prices, weights, indicators.Every position you hold, including tickers and quantities.
portfolio.transactionsThe full ledger: every transaction with symbol, type, amount, fee, and tax.Your complete transaction history.
portfolio.historyThe equity curve: portfolio value, cost, and cash per day.Your portfolio value over time.
market.fundamentalsPublic company data per held symbol: beta, valuation, dividends, analyst targets, DCF, financial scores. Needs a Financial Modeling Prep key.Public company data for every symbol you hold. It names your symbols, not your quantities.
Contribute

Write your own

A metric is a few lines of AssemblyScript. Copy the template, describe it in a manifest, open a pull request, and it ships with the next release.

import { Summary, Result, Format } from "../../_sdk/portfolio";
export { metric_abi_version, metric_alloc } from "../../_sdk/portfolio";

export function metric_run(ptr: i32, len: i32): i32 {
  const s = new Summary(ptr, len);
  return new Result()
    .value(s.totalFees, Format.Currency)
    .text("Lifetime transaction costs")
    .neutral()
    .finish();
}

Read the contributor guide at extras/metrics/README.md. Modules built outside the repository can be installed from any URL; the application checks the size and SHA-256, rejects forbidden imports, and shows the requested scopes first.