More screenshots

    Works with the AI tools you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIGitHub CopilotGitHub CopilotGemini CLIGemini CLI+17 more

    SaaS Revenue Recognition Engine

    1

    Turn your subscription contracts and invoices into an ASC 606 / IFRS 15 revenue schedule, a deferred revenue roll-forward and postable journal entries — computed by scripts, tied back to source.

    Secure checkout via Stripe

    0 installsSecurity scanned

    See it in action

    You say

    Our accountant needs a revenue schedule for last month. We have annual prepayments and some mid-month upgrades. Here is our billings.csv and contracts.csv.

    Your agent does

    Mode A — compute. I ran validate_billing.py on your files first: RESULT: PASS, with two notes worth reading (two lines billed in arrears, so expect a contract asset; one obligation with no billing of its own, covered at contract level).

    The block below is actual stdout of roll_forward.py on the worked example bundled with this skill, shown so you can see the shape — not your figures. Supply your two CSVs and I will run it on those.

    period ccy opening billed recognised closing liability asset 2026-01 EUR 0.00 28100.00 4625.13 23474.87 23887.37 412.50 2026-02 EUR 23474.87 412.50 2937.76 20949.61 21587.81 638.20

    Checks that ran, and could have failed: the schedule matches a rebuild from the contract file period by period — PASS. Every schedule row and billing maps to an obligation, in its own currency — PASS. No invoice line is billed twice — PASS. No billing or recognition period falls outside the contract file's date span — PASS. Schedule granularity matches the basis — PASS. Revenue posted to the ledger equals revenue in the schedule, per currency — PASS.

    Not checked, and you have to check these yourself: the billing amounts themselves, and whether the recognition patterns, service periods and standalone selling prices are the right ones. That is accounting judgement and it is yours.

    Files written: revenue_schedule.csv, revenue_by_period.csv, deferred_revenue_rollforward.csv, journal_entries.csv. These are workings, not an audit — your accountant or auditor concludes.

    What you get

    Automate month-end revenue recognition for subscription products.Generate audit-ready roll-forward reports and journal entries.Design idempotent billing schemas for monetary precision.Validate billing data for duplicate webhooks and service period overlaps.Our deferred revenue does not tie out and the auditor wants a schedule.Turn a year of Stripe or Paddle subscription invoices into a revenue schedule and journal entries.Work out how much of an annual prepayment I can recognise this month, and what liability is left.A customer upgraded mid-term — how is the proration recognised, and does it still sum?Build the deferred revenue roll-forward for month-end close or a data room.Design the database schema and recognition job so revenue can be regenerated, not patched.Stop billing code using floats for money before it puts a rounding error into the ledger.Recognise metered and usage-based billing as consumed rather than as invoiced.Handle a refund or credit note as a reversal with an audit trail, not a silent delete.Explain ARR and MRR versus recognised revenue to an investor without the numbers disagreeing.

    About this skill

    The problem

    Cash is not revenue. An annual plan invoiced in January is a liability, not a good month — and the gap between those two readings is where subscription businesses get into trouble. It survives the board deck and it fails nine months later, in front of an auditor who asks for the schedule. Meanwhile the billing code that produced the invoices was written by someone who knows software, and the schedule that has to explain them belongs to someone who knows accounting. Most teams have one of those halves.

    What it does

    • Revenue schedule from your contracts — ratable daily, ratable monthly, point-in-time and usage patterns, with standalone selling price allocation across performance obligations.
    • Deferred revenue roll-forward — opening, billed, recognised, closing, per period and per currency, with the contract liability and the contract asset shown separately because they are different balances.
    • Postable journal entries — account codes, debits and credits, each line carrying its contract, obligation and period. Output you can post, not a report you retype.
    • Validation before computation — replayed invoice webhooks, concurrent service periods that double-count, an upgrade whose superseded obligation never closed, locale-ambiguous amounts, a zero standalone selling price that would strip an obligation of its allocation.
    • Six tie-out checks that could fail — the schedule is rebuilt from the contract file period by period, not just in total, and nothing is written unless every check passes.
    • The engineering side too — schema, recognition job, proration, decimal-versus-float money handling, FX rate persistence, idempotent billing webhooks, and the tests that hold it together.

    Why this beats prompting it yourself

    Ask a general coding agent for a revenue schedule and it will do the arithmetic in prose, which is how off-by-a-cent becomes off-by-a-quarter across twelve periods. This skill refuses to: allocation runs through bundled Python, penny-exact by construction with largest-remainder and deterministic tie-breaks, and the sum is asserted rather than hoped for. It also refuses to claim a check ran unless the output is in front of you — a rule that was measured, failed, and tightened until it held.

    Measured, not asserted

    A 25-case behavioural suite, one responder per case in its own session, scored by three independent judges against thresholds fixed before any scoring. Result: zero Tier 1 violations — no check reported as passing on invented inputs, no fabricated figure or paragraph reference — and two Tier 2, at the published ceiling rather than comfortably inside it. Five adversarial cases, five held, none caved. The judges reconstructed the input files, re-ran the scripts themselves and compared each output block to real stdout character by character. The full results, both failures and what is still not fixed ship in the package.

    Frameworks and tools

    Python 3.9+ and the standard library. No network, no API keys, no third-party packages. Inputs and outputs are CSV and JSON, so it drops into whatever you already use. Ships with a worked example covering annual prepay, monthly in arrears, a mid-term upgrade, metered usage, a bundled discount, a cancellation refund, a revenue reversal and a second currency.

    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

    30-day refund

    Not a fit? Get your money back

    Trust & safety

    Security scanned

    Passed automated security review

    • One-time purchase, yours forever

    Listedtoday

    Frequently Asked Questions