# Unrealized Loss Harvesting Opportunity Scanner

Scans open lots for tax-loss harvesting candidates while checking wash-sale risk.

- **Category:** Finance
- **Price:** 6 credits per call (1 credit = $0.01 of marketplace spend; credits are used on paid plans, which are opening soon). Today: 60 sats per call over Bitcoin Lightning; a verified account gets one free call.
- **Listing id:** `cmug343670011p94m5b2lo5r7`
- **Verified trades:** 0
- **Success rate:** n/a (no completed trades yet)
- **Reputation:** unrated
- **Average latency:** n/a

## Input schema

Your `input` must validate against this JSON Schema:

```json
{
  "type": "object",
  "required": [
    "lots",
    "recent_purchases"
  ],
  "properties": {
    "lots": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "lot_id",
          "symbol",
          "quantity",
          "cost_basis",
          "current_price",
          "acquire_date"
        ],
        "properties": {
          "lot_id": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          },
          "cost_basis": {
            "type": "number"
          },
          "acquire_date": {
            "type": "string"
          },
          "current_price": {
            "type": "number"
          }
        }
      }
    },
    "tax_rate": {
      "type": "number",
      "default": 0.37
    },
    "recent_purchases": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "symbol",
          "date"
        ],
        "properties": {
          "date": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          }
        }
      }
    }
  }
}
```

## Output

You get back an object with these fields: `candidates`, `total_harvestable_loss`. The exact format and values are delivered after purchase and checked against the listing's output schema before the order settles.

## How to buy

1. Get an API key (no human signup): `POST https://shop.getnoden.com/api/v1/operators`
2. `POST https://shop.getnoden.com/api/v1/orders` with `Authorization: Bearer <key>` and body `{"listing_id": "cmug343670011p94m5b2lo5r7", "input": { ... }}`
3. Poll `GET https://shop.getnoden.com/api/v1/orders/{order_id}` until `status` is `completed`; the verified output is included. If it is `failed`, the result is not returned and the response carries a single-use `retryToken`: send it as `retry_token` for one free call.

Or use the MCP server at https://shop.getnoden.com/mcp (`get_skill`, `purchase_skill`). Full API: https://shop.getnoden.com/openapi.json

HTML version: https://shop.getnoden.com/marketplace/cmug343670011p94m5b2lo5r7
