Month End Close Checklist
Drive a month-end close from a task definition file — sequence tasks by dependency, track owner and status, measure days-to-close against target, surface the critical path and what is blocking it, and produce a tie-out log proving which…
At a glance
Month End Close Checklist is an AI skill that you can use in Claude Code, Codex, or type.com.
- Updated
See an example
Example output from a sample run. Company names and figures are sample data.
Month-end close status: period end 2026-08-31, as of 2026-09-08
Behind target: projected close is business day 11.0 (2026-09-16) against a target of business day 8 (2026-09-11), a variance of +3.0 business days. The critical path is BLOCKED at T10, awaiting the August invoice from Halberd Logistics. All 8 of 8 balance sheet tie-outs verify.
Business day 5 of the close. Progress: 6.5 of 14.0 estimated days complete (46.4%). Tasks: complete 8, in progress 1, BLOCKED 1, not started 6.
Critical path
| ID | Task | Owner | Status | Rem days | Finish day |
|---|---|---|---|---|---|
| T10 | Accrued expense review and AP cut-off | Tomas Weber | BLOCKED | 1.0 | 6.0 |
| T11 | Intercompany elimination entries | Mei Lin | not started | 1.0 | 7.0 |
| T12 | FX revaluation of foreign balances | Mei Lin | not started | 0.5 | 7.5 |
| T13 | Assemble balance sheet tie-out pack | Diego Alvarez | not started | 1.0 | 8.5 |
| T14 | Flux analysis and variance commentary | Sofia Marchetti | not started | 1.0 | 9.5 |
| T15 | Controller review and sign-off | Aisha Bello | not started | 0.5 | 10.0 |
| T16 | Board reporting pack | Aisha Bello | not started | 1.0 | 11.0 |
Tie-out log
| Account | Name | GL | Evidence | Diff | Verdict |
|---|---|---|---|---|---|
| 1000 | Cash - operating | 1,284,905.22 | 1,284,905.22 | 0.00 | tied |
| 1010 | Cash - payroll | 96,410.87 | 96,410.87 | 0.00 | tied |
| 1150 | Undeposited Stripe payouts | 58,204.11 | 58,204.11 | 0.00 | tied |
| 1100 | Accounts receivable - trade | 742,318.40 | 742,318.40 | 0.00 | tied |
| 1500 | Fixed assets - net book value | 431,092.65 | 431,092.65 | 0.00 | tied |
| 2000 | Accounts payable - trade | -389,451.07 | -389,451.07 | 0.00 | tied |
…plus 2 more accounts, both tied. GL total 2,208,360.18 matches evidence total 2,208,360.18 at 0.00 tolerance per account.
Next actions
- Tomas Weber: chase the August invoice from Halberd Logistics to unblock T10; T11 through T16 all wait on it.
- Mei Lin: finish T07 Revenue cut-off and deferred revenue rollforward (in progress), the other input to T11.
- If a balance does not tie, the verdict flips to "CLOSE DOES NOT TIE": Cash - operating with a 1,204.55 DIFFERENCE and Deferred revenue with NO EVIDENCE block sign-off (exit status 1).
- A task file with a dependency cycle is rejected: "dependency cycle detected among task_id(s): T01, T02, T03".
Inputs: task definitions with owners, dependencies and estimates; tie-out evidence per account; a target of 8 business days with 2026-09-07 as a holiday.
Produced by running bash examples/run.sh on the sample data bundled with this skill.
How to use Month End Close Checklist
- type.com: Choose Use Skill to add Month End Close Checklist to your type.com workspace.
- Claude Code: Download the skill and extract it into
~/.claude/skills/month-end-close-checklist/(or.claude/skills/month-end-close-checklist/in a project). Then ask Claude to use Month End Close Checklist. - Codex: Download the skill and extract it into
~/.agents/skills/month-end-close-checklist/(or.agents/skills/month-end-close-checklist/in a repository). Then ask Codex to use Month End Close Checklist.
AI agents can read this page as Markdown or fetch the raw SKILL.md.
Frequently asked questions
What is Month End Close Checklist?
Month End Close Checklist is an AI skill that you can use in Claude Code, Codex, or type.com.
What does Month End Close Checklist do?
Drive a month-end close from a task definition file — sequence tasks by dependency, track owner and status, measure days-to-close against target, surface the critical path and what is blocking it, and produce a tie-out log proving which…
Can I use Month End Close Checklist in Claude Code or Codex?
Yes. Month End Close Checklist is a standard Agent Skills folder with a SKILL.md file. Download it and extract it into ~/.claude/skills/ for Claude Code or ~/.agents/skills/ for Codex.
Who created Month End Close Checklist?
The type.com team created Month End Close Checklist. The type.com team reviews every skill before it is published in the Skills Library.
Related guide
Browse the technical files
--- name: month-end-close-checklist description: Drive a month-end close from a task definition file — sequence tasks by dependency, track owner and status, measure days-to-close against target, surface the critical path and what is blocking it, and produce a tie-out log proving which balances were verified against which evidence. --- # Month-end close checklist Turns a close checklist into a status report a controller can act on in the morning stand-up: who owes what, what the close is actually waiting on, whether it will hit the target close day, and which balances are still unevidenced. ## Before you run This skill ships scripts and sample data alongside this SKILL.md. Before running any command: 1. **Get the files.** Make sure the skill's other files (`scripts/`, `examples/` and anything else listed with this skill) are in your working folder at the same relative paths. Some environments load only SKILL.md; if yours did, fetch each file from this skill's published files and write it to the matching path. In Type, read them with the skill-file tools. Anywhere else, the Type Skills Library API lists every file with its path, content and `sha256`: GET `https://api.type.com/api/public/library/skills` and take the entry with slug `month-end-close-checklist`. 2. **Check the copies are exact.** Compare each file's size in bytes, not characters (and its hash, where your tools report one), with the published version before running. A copy written out from the published file is fine once its byte size and hash match; never run a script you summarised or reconstructed from memory. 3. **Run from the skill's folder**, calling interpreters explicitly: `python3 scripts/…` and `bash examples/run.sh`. 4. **Try the sample first.** If the skill ships `examples/run.sh` and `examples/expected_output.txt`, run `bash examples/run.sh`; its output should match the expected file exactly. If it doesn't, stop and report the first differing line rather than running on real data. ## When to use this - Daily during close: "where are we, and what is blocking day 5?" - Post-close retro: which tasks pushed the close out, and by how many days. - Audit prep: the tie-out log is the evidence index for the balance sheet. - Handover between close owners, so nothing sits unassigned. Do not use it for the reconciliations themselves — use `gl-reconciliation` for bank and processor matching and feed its results into the tie-out file. ## Inputs Two CSVs. Full column specification in `DATA_CONTRACT.md`. 1. `tasks.csv` — the close checklist: `task_id`, `task_name`, `owner`, `depends_on`, `estimate_days`, `status`, and optionally `remaining_days`, `completed_on`, `blocker_note`, `category`. 2. `tieouts.csv` (optional but strongly recommended) — one row per balance being proved: `account_code`, `account_name`, `gl_balance`, `evidence_balance`, `evidence_source`, `evidence_ref`, and optionally `verified_by`, `verified_on`, `note`. ### Gathering the inputs through Type integrations - **Checklist**: most teams already keep it in a task tracker or a sheet. Pull the current list through the connected Linear / Asana / Notion / Google Sheets integration and map its fields onto the columns above. If there is no tracker, write `tasks.csv` once from the team's close narrative and keep it in the repo or workspace — it is the reusable asset here. - **GL balances**: export the trial balance for the period from the connected QuickBooks, Xero, or NetSuite integration and use the closing balance per account as `gl_balance`. - **Evidence balances**: bank closing balance from the bank CSV or banking integration; `Accounts receivable` from the AR ageing export; `Accounts payable` from the AP ageing export; processor balances from the Stripe integration's balance/payout report; payroll accruals from the payroll provider's period report. Record where each number came from in `evidence_source` and `evidence_ref` — that pairing is what an auditor asks for, and it is the whole point of the tie-out log. - Never paste credentials into the CSVs or the script. The agent exports files, the script reads files. ## Running it ```bash python3 scripts/close_status.py \ --tasks examples/sample_tasks.csv \ --tieouts examples/sample_tieouts.csv \ --period-end 2026-08-31 \ --as-of 2026-09-08 \ --target-close-days 8 \ --holidays 2026-09-07 ``` - `--period-end` is the accounting period end; business day 1 is the first working day after it. - `--as-of` is the status date. It is required because the script never reads the wall clock — the same inputs always produce the same output. - `--target-close-days` is the close target in business days (default 5). - `--holidays` takes comma-separated ISO dates that are not working days. - `--tieout-tolerance` sets a per-account tolerance (default `0.00`). - `--json` emits the same analysis as JSON for downstream automation. Exit codes: `0` clean, `1` the close does not tie (a difference over tolerance or a balance with no evidence), `2` bad input — the message names the file, line, and column. `examples/run.sh` runs three scenarios end to end, including the failing ones. ## Reading the output - **Header** — business day of the close, target vs projected close day, and the variance in business days. Projected close is the finish of the last task under current dependencies and remaining estimates. - **Critical path** — the chain that determines the close date. Shortening anything off this path does not move the close. The `Next action on the path` line is the single most useful sentence in the report. - **Blocked and at-risk** — tasks flagged `blocked` plus every task whose predecessors are still open, with the note explaining why. - **Sequence** — the full dependency-ordered checklist with projected finish dates, suitable for pasting into the stand-up. - **Tie-out log** — per account: GL balance, evidence balance, difference, where the evidence came from, who verified it, and a verdict of `tied`, `DIFFERENCE`, or `NO EVIDENCE`. When you present this to a human: lead with projected vs target close and the one blocking task, then list the `DIFFERENCE` / `NO EVIDENCE` accounts by name with their owner. Do not summarise the tie-out log as "reconciled" unless every row says `tied`. ## Conventions - Money uses `decimal.Decimal` end to end; rounding happens only at print time, to 2 decimal places, `ROUND_HALF_UP`. - Balances use natural signs: debits positive, credits negative. A liability balance is negative. Keep the evidence balance on the same convention as the GL balance or every liability will show a difference of twice the balance. - Durations are in business days and may be fractional (`0.5`). - Business days are Monday-Friday minus `--holidays`. There is no built-in holiday calendar. ## Limits - It does not post journals, read your GL, or change anything upstream. It reports on files you exported. - It does not know your holiday calendar unless you pass `--holidays`, and it has no concept of part-time owners, working hours, or capacity: two tasks owned by the same person on the same day are assumed to run in parallel. Model contention by adding an explicit dependency between them. - Projected close uses `remaining_days` as supplied. It does not estimate progress from history; garbage estimates give a garbage projection. - It checks that a GL balance agrees with one evidence balance. It does not test whether the evidence itself is right, does not sample transactions, and is not a substitute for review. - Tie-out tolerance is absolute per account, not a materiality framework. - No multi-entity consolidation logic, no currency translation, and no sub-day scheduling.