More screenshots
Works with the AI tools you already use
Deferred Revenue Tie-Out Check
Free check for a deferred revenue schedule that does not tie out — names every place your revenue schedule stops agreeing with your contracts, before your accountant or auditor does.
Free
See it in action
You say
Our deferred revenue balance looks wrong and the auditor is asking for the schedule. Here is revenue_schedule.csv and contracts.csv — where does it stop tying out?
Your agent does
I ran check_schedule.py on the two files. The block below is its actual stdout, abridged — six of twelve findings shown.
Deferred revenue tie-out check — assets/example/schedule.csv obligations in schedule: 6 checked against: assets/example/contracts.csv
FINDINGS (12) [DOES_NOT_TIE] C-2001/L1: schedule sums to 11999.96, contract says 12000.00 — out by -0.04. [REFUND_NOT_REVERSED] C-2004/L1: the contract line is negative (-900.00) but the schedule recognises 900.00. [RECOGNISED_AFTER_CANCELLATION] C-2003/L1: 2 row(s) recognise revenue after the cancellation month (2026-04). [PERIOD_GAP] C-2002/L1: no schedule row between 2026-04 and 2026-07. [ORPHAN_SCHEDULE] C-2007/L1: scheduled 1500.00 but this obligation is not in the contract file. [SUB_CENT_AMOUNT] schedule row 29: 400.005 has more than two decimal places.
Reading those in your terms: the four cents on C-2001 is a rounding remainder nobody allocated — annoying, immaterial, fixed once. C-2004 is the one to look at today: a credit note went through as income rather than reversing revenue, so both revenue and the liability are overstated by 900.00. C-2003 is still recognising on a cancelled contract.
The tool then prints what it did not check: whether the amounts themselves are right, and whether the recognition pattern is the correct one for each contract. Those are accounting judgements and they stay yours. This is a spotter, not an audit — your accountant concludes.
About this skill
The problem
Somebody looks at the deferred revenue balance and says it looks wrong. It usually is, and the reason is almost never exotic: a rounding remainder nobody allocated, a credit note recognised as income instead of reversing revenue, three months recognised on a contract that was cancelled in April, a schedule row for a contract that does not exist. Each one is small. Together they are why a close takes a week and an auditor asks for workings you do not have.
What it does
You give it the revenue schedule you already have — one CSV: contract, period, amount — and, if you have it, the contract file to tie back to. It runs a Python script over both and names what does not hold together.
- Does not tie — an obligation's schedule does not sum back to its contract amount, and by how much.
- Refund not reversed — the contract line is negative but the schedule still recognises income.
- Recognised before the term starts, after it ends, or after a cancellation.
- Orphan revenue and never-scheduled contracts — revenue with no contract behind it, and contracts with no revenue in front of them.
- Gaps, duplicated periods and currency drift inside a single obligation.
- Sub-cent amounts — what a float artefact looks like by the time it reaches a ledger.
- Input it refuses to guess at — 1,200.50 is rejected rather than interpreted, because the same glyphs mean a thousand-fold different number in another locale.
Where it stops, on purpose
It finds the problem. It does not invent the answer. No schedule is built here, no journal entries, no roll-forward, no standalone selling price allocation, no proration for a mid-term upgrade. If the answer to a finding is "so what should it be?", that is a rebuild — the schedule has to be regenerated from the contract terms and tied back period by period, not patched row by row, or next month drifts again. The skill says so rather than improvising an engine in prose.
It is equally plain about a clean run: no findings means the checks above did not fire on the file you supplied. It does not mean the schedule is right, and the tool prints that in those words every time it finds nothing, alongside a list of what it did not check.
Frameworks and tools
Python 3.9+ and the standard library. No network, no API keys, no third-party packages. Ships with a deliberately broken worked example — six contracts, twelve findings — so you can see the output before pointing it at your own books. A spotter, not an audit, and not accounting advice: the judgements and the sign-off stay with your accountant.
How to install
Drop the file into your AI Agent. Works with Claude, Cursor, ChatGPT, and 20+ more.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill passes our trust checks below.
Security scanned
Passed our 8-point scan before listing
Fresh listing
Recently published to Agensi
Free forever
No account required to browse
Trust & safety
Security scanned
Verified clean today
- Free to download with an account