Skip to content This library is free, offered as dana. If it helps your work, donate here →

This is one of 3,622 free prompts in the penguin tree ai library. Sign up once and the whole library opens, with new prompts by email.

open the library →

Cash position tracker

Consolidates multi-entity, multi-currency bank balances into a single daily cash position view with FX conversion to a base currency, per-entity and per-account breakdowns, low-balance and unexpected-movement flags, and…

download .md

Purpose

Consolidate raw bank balances across multiple entities, accounts, and currencies into one daily position view — converted to a single reporting currency — and automatically flag low balances and unexpected day-over-day movements so the treasury team knows exactly which accounts need action before the funding cutoff.

When to Use

Invoke this skill when the user asks to:

  • Build a daily cash position report from bank balance data
  • Consolidate balances across multiple entities, banks, or accounts
  • Convert foreign-currency balances into a single base/reporting currency
  • Flag accounts that dropped below their minimum operating balance
  • Identify unexpected or large day-over-day balance movements
  • Produce a morning cash summary for a funding or sweep decision

Inputs Required

Before starting, collect:

  • Balance data: Per-account balances — account name/number, entity, bank, currency, opening balance (or prior-day closing), and current/closing balance
  • Base currency: The single reporting currency to consolidate into (e.g., USD, EUR, GBP)
  • FX rates: Current spot rate per non-base currency to base; if omitted, note that rates must be supplied and flag any unconverted amounts
  • Minimum balance thresholds: Per-account or per-entity floor balances that trigger a low-balance flag
  • Movement threshold: The day-over-day change (absolute amount and/or %) that qualifies as "unexpected" — default: ±20% or ±$100K base equivalent, whichever is smaller
  • As-of date: The position date the report represents
  • Expected flows (optional): Known receipts/disbursements that explain large movements so they aren't falsely flagged

If minimum thresholds or a movement threshold are not provided, apply the defaults above and state the assumption in the report header.

Instructions

Step 1: Normalize and Validate the Balance Data

  • Standardize every account row: entity, bank, account, currency, prior-day closing, current balance, day-over-day change.
  • Flag data integrity issues before consolidating: missing currency, missing prior-day balance (movement can't be computed), duplicate account entries, or a balance with no matching FX rate.
  • List any excluded or incomplete rows explicitly — never silently drop an account from the position.

Step 2: Convert to Base Currency

  • Apply the supplied spot rate to each non-base-currency balance: base_amount = native_amount × rate_to_base.
  • Show both native and base amounts for every account so the source figure is auditable.
  • If a rate is missing for any currency, leave that balance unconverted, mark it clearly, and exclude it from base-currency totals with a note.

Step 3: Aggregate the Position

Build the consolidated view at three levels:

  • Total: Total cash position in base currency across all entities.
  • By entity: Base-currency subtotal per legal entity.
  • By currency: Native totals per currency plus base equivalents (surfaces FX concentration).
  • Compute total day-over-day movement in base currency and the net change by entity.

Step 4: Apply Low-Balance Flags

  • Compare each account's current balance to its minimum threshold in the account's native currency.
  • Mark each flagged account with severity:
  • Breach: Balance below the minimum threshold.
  • Watch: Balance within 10% of the minimum but not yet breached.
  • For each breach, compute the shortfall amount (threshold − current balance) so the funding requirement is explicit.

Step 5: Apply Movement Flags

  • For every account with a prior-day balance, compute day-over-day change in native currency (absolute and %).
  • Flag any movement exceeding the movement threshold as Unexpected Movement, unless a supplied expected flow explains it — in which case tag it Explained and note the source.
  • Distinguish inflows from outflows; a large unexplained outflow ranks higher than a large inflow.

Step 6: Build the Prioritized Action List

Rank required actions in order of urgency:

  1. Low-balance breaches with a funding shortfall (largest shortfall first)
  2. Large unexplained outflows (potential error, fraud, or unrecorded transfer)
  3. Watch-level accounts approaching their floor
  4. Data issues blocking a complete position (missing rates, missing prior-day balances) Each action states the account, the issue, the amount involved, and the recommended next step (e.g., fund, sweep, investigate, obtain rate).

Output Format

  • Structure: Header (as-of date, base currency, assumptions) → Consolidated summary → By-entity table → By-currency table → Flags section (low-balance and movement) → Prioritized action list
  • Length: 500–900 words plus tables, scaling with account count
  • Format: Structured document with tables for account-level and aggregate figures; flags and actions as labeled lists
  • Sections: Position Header → Total & Summary → By Entity → By Currency → Low-Balance Flags → Movement Flags → Prioritized Actions
  • Tone: Treasury operations — precise, figure-first, no narrative padding; every number traceable to a source balance

Quality Checklist

Before delivering output, verify:

  • [ ] Every account in the input appears in the position or is explicitly listed as excluded with a reason
  • [ ] Base-currency total equals the sum of all converted account balances (numbers reconcile)
  • [ ] Each account shows both native and base-currency amounts
  • [ ] Every low-balance flag includes a computed shortfall amount
  • [ ] Every movement flag states absolute and % change and whether it's explained
  • [ ] Action list is ranked by urgency with a specific recommended step per item
  • [ ] Any missing FX rate or prior-day balance is flagged, not silently ignored

Notes

  • Large unexplained outflows deserve investigation before funding decisions — a movement flag can be the first sign of an error, duplicate payment, or unrecorded transfer.
  • FX concentration in the by-currency view matters for hedging: a position that looks healthy in base currency may carry outsized exposure in one volatile currency.
  • If the same data is run daily, prior-day closing should tie to the previous report's closing — a mismatch signals a missed or backdated transaction.
  • When expected flows are supplied, use them to suppress false alarms, but never suppress a low-balance breach — a breach is actionable regardless of cause.

How to use this skill

This file is a Claude Code skill in Anthropic's standard format — markdown with YAML frontmatter at the top.

Installing in Claude Code:

  • ~/.claude/skills/<folder-name>/SKILL.md — auto-loads in every session anywhere on your machine (recommended for skills you'll use across multiple projects)
  • <your-project>/.claude/skills/<folder-name>/SKILL.md — auto-loads only when working in that project (recommended for project-specific skills)

Restart Claude Code or open a new session to register.

Using in Claude.ai, ChatGPT, Gemini, or other AI tools:

  1. Drag this file into a new chat, or copy and paste its contents
  2. Send your task or request as your next message — the AI will apply the skill where it fits

For Claude Code skill details: https://docs.anthropic.com/en/docs/claude-code/skills