Month-End Close Readiness Orchestrator Copy link
Plugin: Blitz Report Excel Add-in Skills (
br-month-end-readiness)Works with: Claude in Excel, Microsoft 365 Copilot in Excel
Orchestrate a full Oracle EBS month-end close readiness assessment in Excel: run the per-module readiness checks (AP, AR, Inventory/Costing, FA, GL), the close-process monitor, and the subledger-to-GL reconciliation, then assemble one master scorecard with a per-module red/amber/green status, the ranked blockers, and the recommended close sequence.
When to use it
- Use when the user asks "are we ready to close {period}", "month-end readiness", or a full close status.
- Download the skill zip. br-month-end-readiness.zip
- In Claude in Excel open Customize > Skills > Create skill and upload the zip.
- Connect the Blitz Report Excel add-in to your Oracle EBS instance, then ask Claude for the task in your own words.
- Download the skill folder from GitHub. br-month-end-readiness
- Copy the folder into Documents/Copilot/Microsoft Excel/Skills in your OneDrive.
- Open Excel with the Blitz Report add-in connected and ask Copilot for the task.
- Add the Enginatics marketplace in Claude Code.
/plugin marketplace add enginatics/ai-skills - Install the Excel add-in skills plugin.
/plugin install blitz-report-excel-addin-ai-skills@enginatics - Run the setup skill; it installs or updates the skills in Claude in Excel or Microsoft 365 Copilot in Excel.
/blitz-report-excel-addin-ai-skills:excel-skills-setup
Requirements: Blitz Report and the Blitz Report Excel add-in, connected to your Oracle EBS instance, plus Claude in Excel or Microsoft 365 Copilot in Excel.
🚨 Blitz data = Excel worksheet UDFs, not MCP tools/connectors. Extract data only by writing
=br_...()into a cell (viaexecute_office_js) and reading the spill — nevertool_searchforbr_*, neverrefresh_mcp_connectors, and never conclude "no Oracle EBS / Blitz connector is set up" (the Blitz Report add-in is an Excel add-in, not an MCP connector, so it never appears in the connector list — its absence there is expected). Load the extraction mechanism first:read_skill("br-run-reports").Performance: Read
br-analytics-standardsat the start of every run (read_skill("br-analytics-standards")). All pipeline steps must follow those rules. Target runtime: under 7 minutes for single-module, under 20 minutes for orchestrations.
Assemble a single month-end readiness scorecard across every module. You drive the sequence and the master roll-up; each module's own readiness skill (or its primary report) does the detail. Run steps in order, keeping every module sheet.
Requires: br-run-reports, br-data-dashboard, and the module skills br-ap-close-readiness, br-ar-close-readiness, br-inv-cost-close-readiness, br-fa-close-readiness, br-gl-close-readiness, br-close-process-monitor. (Optional: br-po-close-readiness, br-ce-recon-readiness, br-subledger-gl-reconciliation.)*
Division of responsibility — READ FIRST
- You do NOT run Blitz reports yourself — extraction is always via br-run-reports (directly, or inside the module skills). Do not call the
br_UDFs directly from the orchestrator - delegate extraction to br-run-reports / the module skills, which write the=br_...()worksheet UDFs into cells (thebr_functions ARE the data source: worksheet UDFs, not MCP tools/connectors, so neverrefresh_mcp_connectorslooking for Blitz); never touch a result sheet until its run is confirmed complete. - Delegate one module at a time and wait for it to finish before starting the next. Do not start several module skills at once — the close runs are asynchronous and overlapping them stalls them.
- Robust hand-off: invoke each module readiness skill to produce that module's sheet. If a module skill does not fire (composition can be unreliable), fall back to running that module's primary report directly via br-run-reports and scoring it inline with the same RAG rule. Never skip a module silently — show it as "not assessed" if neither path worked.
- Read-and-recommend only: nothing here executes a fix.
When to use
"Are we ready to close May", "month-end readiness", "full close status", a close-readiness pack for the controller.
Inputs (collect up front)
- Ledger; Operating Unit(s) (AP/AR); Organization Code(s) (INV); FA Book; Period.
- Optional: materiality threshold for reconciliations; whether to include CE and the subledger-GL recon.
CONFIG
Close sequence (the order the scorecard recommends)
- Subledgers in parallel: AP, AR, Inventory/Costing, FA (each must reach Green).
- Subledger-to-GL reconciliation (optional) — confirm control accounts tie.
- GL — only after subledgers are closed/reconciled. Throughout: Close Process Monitor must show the close programs healthy.
Module → primary report (fallback if the module skill doesn't fire)
The module skills run their own reports directly by name (no broad discovery search). If a
module skill doesn't fire and you run its fallback report yourself, pass the documented name
below directly to br-run-reports — do NOT br_report_list_external-search first;
only fall back to a search on #BLITZ_REPORT_NOT_FOUND.
| Module | Skill | Fallback primary report |
|---|---|---|
| AP | br-ap-close-readiness | AP Period Close Exceptions |
| AR | br-ar-close-readiness | AR Unaccounted Transaction Sweep (Sweep Now = No) |
| INV/Cost | br-inv-cost-close-readiness | INV Period Close Pending Transactions |
| FA | br-fa-close-readiness | FA Depreciation by period (+ FA Unposted Mass Additions) |
| GL | br-gl-close-readiness | GL Period Status |
| Process | br-close-process-monitor | FND Concurrent Requests |
Overall RAG
- Green — every module Green and the close-process monitor Green.
- Amber — all subledgers Green/Amber but GL or recon still pending.
- Red — any module Red.
Output sheets & tab order (left to right)
Month_End_Readiness (master, first), then AP_Close_Readiness, AR_Close_Readiness, INV_Close_Readiness, FA_Close_Readiness, GL_Close_Readiness, Close_Process_Monitor,
[CE_Recon_Readiness], [Subledger_GL_Recon] (detail sheets after the master).
Pipeline
- Process health first. Run br-close-process-monitor (or
FND Concurrent Requests) — if close programs are erroring, surface that at the top; module results may be stale until they clear. - Per module, in sequence (AP → AR → INV → FA → GL): invoke the module skill; on no-fire, run its fallback report and score inline. Capture each module's RAG + top blockers into a roll-up table from the values the sub-skill returned in its own final JS call — wait for each module to complete before the next, but do NOT insert extra
get_cell_rangesreads between sub-skill invocations to inspect a module's output sheet (Rule 8). Each delegated sub-skill follows the standards within its own pipeline; trust its return values and reconcile only at the final validation read.- Period status is already covered by
GL Period Status(it reports every subledger's period status), so in the orchestrated flow you do NOT need to also runCAC Accounting Period Statusper module.
- Period status is already covered by
- Optional: br-po-close-readiness (the purchasing-accrual leg — include when the user runs a full close or names PO/accruals), br-ce-recon-readiness and/or br-subledger-gl-reconciliation.
- Master scorecard (delegate to br-data-dashboard if it fires; else build inline) (single
execute_office_jscall). In one call, build the entireMonth_End_Readinesssheet — all sections in the same JS block: the overall RAG banner (ledger+period); the per-module status rows (module, RAG, # blockers, top blocker, recommended action) ordered by the close sequence; the close-process-monitor status; and the "recommended next actions" list ordered subledgers → recon → GL. If any charts are added, they go in a secondexecute_office_jscall (the one permitted exception). Read the per-module RAG + blockers from the values each sub-skill returned in its own final JS call — do not insertget_cell_rangesreads against the module sheets to inspect their output here (Rule 8); trust the sub-skill return values /formula_results, no re-read needed at this step.- Build mechanics (learned on a real run): build the master on a NEW sheet at position 0 (first tab); leave every module's own sheet untouched and do NOT rename it (the master links to it by name). Do NOT use a multi-row
copyToRangeto fill the per-module rows (it can latch onto the wrong source box and duplicate headers into the data) — write each row's formula explicitly. After building, scan beyond the dashboard's column range, clear any stray cells, and widen amount columns so values don't render as######.
- Build mechanics (learned on a real run): build the master on a NEW sheet at position 0 (first tab); leave every module's own sheet untouched and do NOT rename it (the master links to it by name). Do NOT use a multi-row
- Verdict narrative (single
set_cell_rangecall). Write all ≤6 bullets toMonth_End_Readinessin one call: can we close (overall call), which modules block it, the single most urgent action, and the recommended order to clear the rest. Do not callset_cell_rangeonce per bullet. - Arrange tabs + final validation (single
execute_office_jscall + one read). In one call, reorder worksheet tabs per CONFIG and makeMonth_End_Readinessactive — only after the master scorecard exists. Then do the one permitted verification read at the end of the pipeline (the Validation checks below); do not insert any intermediate verification reads between modules.
Validation
- Every required module appears in the roll-up with a RAG (or an explicit "not assessed").
- Overall RAG is consistent with the module rows (Red if any module Red).
- Per-module figures on the master tie to that module's own sheet.
Closed-loop (roadmap, not executed here)
Each module's fix (hold release, receipt application, GL journal upload, FA mass additions) is a Blitz Upload; accounting/posting/depreciation are concurrent submits. This orchestrator recommends the sequence; a human executes each step.