Financial Analyst · works with NetSuiteBeta

NetSuite management reporting, delivered as a finished monthly report

Connect your NetSuite account and the Financial Analyst turns it into a management report draft every month, for your approval: profit and loss, a balance sheet, cash with a 13-week forecast, receivables and payables, and a variance read that names what moved. It reads over NetSuite's REST Web Services after a one-time setup by your NetSuite administrator, and it only ever issues read queries.

Works — we are verifying it on our first customers' books. Tell us if anything looks off.

What the monthly report contains

  • Profit and loss, and a balance sheet. Both read from your NetSuite books and classified by your own chart of accounts, so a statement and the accounts it is made of come from one set of books.
  • Cash, 13 weeks out. A forecast with its minimum balance and headroom, starting from the balances of your NetSuite bank accounts.
  • Receivables and payables. Aging of what customers owe you and what you owe suppliers, deferred revenue, and the working-capital cycles: days sales outstanding, days payable outstanding and days inventory outstanding.
  • Variance against the prior month, with causes. Each line that moved is explained by the accounts that moved it and by how much.
  • Your departments, classes or locations. When your account uses them, the transaction lines carry them, and the report adds a breakdown of revenue and costs by one of them. An account with none of the three switched on gets the statements without the cut, never an invented one.

The same monthly close also produces an investor report, a board deck as slides (PPTX) laid out from the report you approve, and an Excel workbook with live formulas.

What the Financial Analyst reads from NetSuite

Everything is read over SuiteTalk REST Web Services: general-ledger transactions and their lines, receivables and payables aging, deferred revenue, your chart of accounts, the balances of your bank accounts and the list of subsidiaries. On the first connection the analyst reads up to 24 months of history, so the first report already has a past to compare with.

One subsidiary, one currency per read. On a NetSuite OneWorld account the read is scoped to the subsidiary you choose. Amounts in different currencies are never added together: the analyst does not translate at consolidated exchange rates it has not read, so a figure it cannot state in one currency is left out rather than estimated.

Reporting on more than one subsidiary? On the Team plan each company in the workspace can be a subsidiary of the NetSuite account you already connected, or a different NetSuite account with its own connection.

The NetSuite role is the boundary

The sign-in asks NetSuite for one scope, listed in the table below. What that scope can reach is decided by the NetSuite role of the user who signs in, so the setup creates a role that can only read. It needs these permissions, and without any one of them NetSuite lets the user sign in but refuses the reads:

  • Setup → REST Web Services, level Full.
  • Setup → Log in using OAuth 2.0 Access Tokens, level Full.
  • Reports → SuiteAnalytics Workbook, level Edit.

The Financial Analyst only issues read queries. It cannot post journal entries, change records or close accounting periods.

How to connect NetSuite

A one-time setup by a NetSuite administrator, about 15–30 minutes. The connect page walks through it step by step and shows the exact Redirect URI to paste.

  1. Start your free month, open the Financial Analyst's Data & settings and press Connect on the NetSuite card.
  2. In NetSuite, under Setup → Company → Enable Features → SuiteCloud, turn on two separate features: OAuth 2.0 and REST Web Services. The connection needs both.
  3. Create the read-only role with the permissions above and give it to the user who will sign in.
  4. Create an Integration record (Setup → Integration → Manage Integrations → New) with Authorization Code Grant and the REST Web Services scope, and paste the Redirect URI from the connect page. To sign in only once a month, check Public Client and set Refresh Token Validity and Maximum Time For Token Rotation to 720 hours.
  5. Back on the connect page, enter the Account ID and the record's Client ID, press Sign in to NetSuite, sign in with that role and click Allow.

Signing in again

The sign-in is renewed automatically, but NetSuite still asks for a fresh one when the Integration record's limit runs out: after 7 days by default, and after 30 days at most with Public Client checked and both hour fields at 720. Until someone signs in again the figures do not refresh; the NetSuite card shows Reconnect, and the connect page shows Sign in again — one click, nothing to re-enter.

Already connected through Token-Based Authentication? Existing TBA tokens keep working: paste the five values on the same connect page. Oracle stops accepting new TBA integrations from NetSuite 2027.1, which is why a new connection signs in with OAuth 2.0.

Every permission the connection asks NetSuite for

Permission What it is used for
rest_webservices The one scope the OAuth 2.0 sign-in requests: access to NetSuite's REST Web Services, where every read runs. What it can reach is set by the NetSuite role you sign in with.

Checked before it reaches you or your board

  • A second, independent AI reviewer reads every monthly narrative before release. When it disagrees with the analyst, the disagreement comes to you instead of being settled quietly.
  • An AI explanation that cites a source outside your books is discarded, not published. If the month is not closed yet, the report says so and shows only the lines the books support.
  • EBITDA is called EBITDA only when depreciation is read from the books; otherwise the line is named the operating result.

Your next monthly report, built from NetSuite.