credit-cycle-analysis – Data & Science skill for AI agents
Debtor and creditor credit-cycle analysis: weighted collection or payment days, ageing buckets, credit limit utilisation and gap against benchmark. Use for working-capital review.
Install the credit-cycle-analysis skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/credit-cycle-analysis-f80ea.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /credit-cycle-analysis – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/credit-cycle-analysis-f80ea.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $credit-cycle-analysis – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/credit-cycle-analysis-f80ea.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /credit-cycle-analysis – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/credit-cycle-analysis-f80ea.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /credit-cycle-analysis – then describe the task you want done.
SKILL.md content
Debtor & Creditor Credit-Cycle Analysis
What it is: How long the business actually waits to be paid and how long it actually takes to pay, measured per party and per period.
Overview
Works out the smallest useful Debtor & Creditor Credit-Cycle Analysis setup for the business in
front of it, then builds it only when asked. The default output is a short recommendation, not a
spreadsheet. Artifacts - CSV, SQL DDL, JSON Schema, Notion mapping - are produced on request, from
one field list so they cannot drift apart.
Layer: Layer 8: Close & Analyse. Fits: Growth stage. Table code: n/a.
The SOP rule this skill is built around: analyse debtors on the average collection period,
outstanding invoices, overdue receivables and the aging of receivables; analyse creditors on the
average payment period, outstanding supplier balances, overdue payables and supplier aging; then
compare the debtor collection cycle with the creditor payment cycle. The comparison is the point.
Two cycles measured the same way can be read against each other, and the day-to-day pressure of
waiting longer than you take is invisible as a line on the balance sheet. That pressure is
measured in days here. Turning it into money is a separate calculation with its own basis,
below.
Six concepts that never stand in for each other. This table exists to keep them apart, and
most of the wrong answers come from swapping one for another:
| Concept | What it answers | Field that carries it |
|---|---|---|
| Contractual terms | What was agreed | Contractual Terms Days |
| Actual cycle | What actually happened | Actual Collection/Payment Days, Weighted Days |
| Benchmark | What to compare against | Benchmark Days, Gap vs Benchmark |
| Aging | How old the unpaid items are | bucket amounts, and Aging Bucket on the invoice/bill detail |
| Debtor-vs-creditor timing | Which side of the cycle is longer | Cycle Gap Days on the comparison record |
| Working-capital funding | What the timing difference costs in money | Estimated Working-Capital Funding, Calculation Basis |
Conflating them is the defect this module is built to prevent. Contractual terms of 30 days and
an actual collection cycle of 42 days are two facts about the same party, and the 42 is the one
that reaches the bank account. Writing the 30 into Actual Collection/Payment Days because it is
the number in the contract is a substituted value, not a measurement.
Aging lives on the invoice, not on the party. One party can hold open invoices in several
aging buckets on the same day. So the party-period record carries the bucket amounts
(Current Amount, Aging 0-30 Amount, Aging 31-60 Amount, Aging 61-90 Amount, Aging 91-180 Amount, Aging Over 180 Amount)
and the single Aging Bucket belongs to one invoice or one bill on the aging-detail record. A
party row carrying one Aging Bucket cannot describe a real aging position and is replaced by
the bucket amounts.
Neutral field names. The two movement fields are Credit Movement and Settlement, for
customers and for suppliers alike. Credit Movement is the credit-side activity that created the
balance in the period - customer invoices on the debtor side, supplier bills on the creditor
side. Settlement is what closed it - customer collections, supplier payments. A name like
Total Billed describes only the debtor side and quietly makes the creditor side unreadable.
The balance identity, and what happens when it fails.
Closing Balance = Opening Balance + Credit Movement - Settlement + Signed AdjustmentsCheck it on every row. If it does not hold, the difference is recorded and marked, never
repaired by editing a component. A silently balanced row is worse than an unbalanced one,
because the next period inherits it.
The cycle gap is descriptive, not a verdict.
Cycle Gap Days = Debtor Collection Days - Creditor Payment DaysPositive means customers take longer to pay than the business takes to pay suppliers. Zero means
the two measured cycles are equal. Negative means suppliers are paid later than customers are
collected. A positive gap is not automatically bad - it is often the ordinary consequence of
selling on credit to a customer base and buying on shorter terms. The module states the
difference and leaves the judgement to the business.
Working-capital funding needs a monetary basis, and the basis is always written down.
Estimated Working-Capital Funding = Cycle Gap Days x Relevant Daily Credit MovementThis is only computed when the relevant monetary basis exists, and Calculation Basis always
records how that basis was built. A plausible daily figure is:
Relevant Daily Credit Movement = Relevant annual credit movement / 365and it is only used when the selected annual movement is appropriate for the analysis. Where the
monetary basis is missing, Estimated Working-Capital Funding is Unknown and the record says so.
Never invent a monetary impact, and never divide a period's movement by 365 without checking that
the period is the year the analysis is about.
Benchmarks are the user's, not the module's. Gap vs Benchmark is `Actual Collection/Payment
Days - Benchmark Days`. A benchmark must be supplied by the user, explicitly selected by the
user, or clearly labelled a proposed default. It is never presented as a business target, and
never as an industry figure unless the user supplied that figure.
Due dates are recorded, never derived. Days Overdue = Period End - Due Date. Where a due date
is not recorded, the aging is Unknown - a due date is never reconstructed from payment terms,
because terms are an agreement and the due date is a fact about one invoice.
Percentages, money and rounding. A percentage is stored as 97 for 97%, never 0.97, and the
convention is never mixed inside the table. Money is a bare number with no currency symbol in the
cell, and the currency itself is Unknown until the user states it. Amounts are the gross ledger
amounts as posted to the party's account, tax-inclusive; this module does not split tax out of a
balance. Use exact decimal arithmetic and the currency’s minor-unit convention (two decimal places is this template’s example, not universal). Round derived outputs for display; retain source precision and report any rounding difference rather than forcing reconciliation.
When to Use This Skill
- debtor collection analysis
- creditor payment analysis
- receivables aging and payables aging
- average collection period or average payment period
- customer payment behaviour and supplier payment behaviour
- working-capital cycle review
- converting an existing credit-cycle spreadsheet or process
Also use it when the user says "how long the business actually waits to be paid and how long it
actually takes to pay, measured per party", or describes the same process happening in a
spreadsheet, a document or someone inboxes.
Do not use it for: collections chasing, credit-control action plans, payment execution, banking
operations, employee analysis, disciplinary decisions, or legal advice. This skill designs
templates and analysis structures. It does not execute financial transactions, and it produces
empty or explicitly synthetic templates only. Do not request real customer/supplier data for this template-design workflow; data already supplied remains subject to the host’s actual processing and retention policies.
How It Works
The upstream shared execution contract is not bundled; use the explicit workflow and safety rules here and in the detailed domain workflow in [the bundled how-it-works reference](references/how-it-works.md). Keep unknown values explicit and derive every output from confirmed fields.
Measurement limits
Do not aggregate currencies without an explicit conversion policy. Store currency in the canonical dictionary (a confirmed single-currency dataset setting or per-row field across every format). Settlement-weighted completed-invoice delay excludes unpaid exposure and is not balance-based DSO/DPO. Keep the cohort, weighting, partial/unpaid treatment and period fixed. A gap multiplied by one daily movement is only a scenario proxy; it is not the cash conversion cycle (which also includes inventory), actual funding need, or interest cost. Different sales/purchase bases may require separate receivable/payable amounts instead.
Field Reference
The canonical fields and export mappings are maintained in [the bundled field-reference document](references/field-reference.md).
Select Options
See the [bundled select-options reference](references/select-options.md).
Relations
No relation fields. This table is standalone: Party Name is free text because no party master
table is created by this build, and inventing a link to a database that does not exist would give
a column that never resolves. Where the business later wants a live party link, add it once the
p
… (full content is in the download package)
Related skills
- research-paper-writing – Write ML papers for NeurIPS/ICML/ICLR: design→submit.
- crossframe-public – Use when CrossFrame Suite routes explicit Chinese analysis of public issues, platform…
- crossframe-suite – Use when the user explicitly invokes CrossFrame Suite for Chinese structural diagnosis…
- rss-feeds – Read RSS, Atom, JSON feeds; discover feeds behind a page.
- customer-research – When the user wants to conduct, analyze, or synthesize customer research.
- customer-support – Elite AI-powered customer support specialist mastering conversational AI, automated…
- saelens – Train sparse autoencoders to interpret model features.
- scientific-brainstorming – Facilitates evidence-aware scientific ideation with independent generation, structured…