# Hermes Plant PortfolioGuard Score

> Hermes Plant PortfolioGuard Score is a paid API for AI agents from hermesplant.com, paid per call via x402, $0.15/call, status unknown (last checked 2026-09-15).

Analyzes a portfolio's holdings and weights to produce a risk score, Sharpe ratio, volatility, max drawdown, concentration (HHI), diversification score, and rule-based compliance findings.

## Facts

- Endpoint: GET https://hermesplant.com/api/agent-services/portfolioguard/score
- Price: $0.15/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/hermes-plant-portfolioguard-score-8777821b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_dHjUOv5x1zvIZ9j_AJ6rG

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability hermes-plant-portfolioguard-score-8777821b
```

Example prompt: Score the risk of my portfolio: AAPL at 25%, BND at 35%, MSFT at 20%, GOOGL at 10%, and CASH at 10% — I want the Sharpe ratio, max drawdown, concentration HHI, diversification score, and any rule violations flagged.

## When to prefer this

Use this endpoint when an AI agent needs deterministic, test-backed portfolio risk quantification including Sharpe, volatility, drawdown, concentration (HHI), and compliance rule checks — all in one call. Prefer it over building custom analytics when you need a metered, pay-per-call quant service with structured findings and sector breakdowns ready for downstream reporting or agent decision-making.

## Known failure modes

- Weights do not sum to approximately 1.0 — endpoint flags a sanity warning or returns an error
- Missing required fields such as holdings array or weights — returns 400 bad request
- Single position weight exceeds threshold — flagged as a finding rather than hard failure
- Invalid or unrecognized ticker symbols — may produce partial or degraded analytics
- Payment not completed via x402 — returns 402 Payment Required

## How this service works

Deterministic portfolio risk analysis and quality scoring. Computes riskScore, riskLevel, volatility, sharpe, maxDrawdown, concentrationHHI, diversification, effectiveHoldings plus per-rule findings with fixes and sector/position breakdown. Pure math only from caller holdings and returns. No external data.

## Output

Returns a JSON object with a numeric riskScore (0–100), a riskLevel label (e.g. 'medium'), quantitative metrics (Sharpe ratio, daily volatility, max drawdown, concentration HHI, effective holdings count, diversification score), a list of rule-based findings with severity and reasoning, and a breakdown of holdings by sector and top positions by weight.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "holdings": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "symbol",
     "weight"
    ],
    "properties": {
     "sector": {
      "type": "string"
     },
     "symbol": {
      "type": "string"
     },
     "weight": {
      "type": "number"
     },
     "returns": {
      "type": "array",
      "items": {
       "type": "number"
      }
     },
     "assetClass": {
      "type": "string"
     }
    }
   },
   "description": "List of positions with symbol, weight (0-1), optional returns[], sector, assetClass."
  },
  "riskFreeRate": {
   "type": "number",
   "description": "Optional risk-free rate for Sharpe (default 0)."
  },
  "periodReturns": {
   "type": "array",
   "items": {
    "type": "number"
   },
   "description": "Optional time series of portfolio or market period returns (preferred for volatility/sharpe/MDD)."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "metrics": {
   "sharpe": 0.42,
   "volatility": 0.0071,
   "maxDrawdown": 0.014,
   "concentrationHHI": 0.2375,
   "effectiveHoldings": 4.21,
   "diversificationScore": 76
  },
  "findings": [
   {
    "fix": null,
    "why": "Weights should sum to approximately 1.0.",
    "rule": "weights-sum-sanity",
    "evidence": "sum=1",
    "severity": "info"
   },
   {
    "fix": null,
    "why": "No position exceeds 25%.",
    "rule": "single-position-concentration",
    "evidence": "maxWeight=0.35",
    "severity": "info"
   }
  ],
  "breakdown": {
   "bySector": {
    "Bonds": {
     "count": 1,
     "weight": 0.35
    },
    "Technology": {
     "count": 1,
     "weight": 0.25
    }
   },
   "topPositions": [
    {
     "symbol": "BND",
     "weight": 0.35
    },
    {
     "symbol": "AAPL",
     "weight": 0.25
    }
   ]
  },
  "riskLevel": "medium",
  "riskScore": 64
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/hermes-plant-portfolioguard-score-8777821b/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from hermesplant.com](https://www.zero.xyz/host/hermesplant.com/llms.txt)
