Skip to main content

FAQ: How Periods Work with XAVI Formulas (Including Custom Fiscal Calendars)

ExtendInsights FRE | Learn how XAVI resolves accounting periods from dates, text, or Internal IDs, including how to handle custom fiscal calendars (4-4-5, 4-5-4, etc.).

📋 TL;DR

  • XAVI period arguments accept an Excel date, text like Jan 2025, or your period name.

  • Point all period arguments at a single year cell and use DATE($B$1, month, 1) so you only change one cell to roll to a new year.

  • If your company uses a custom fiscal calendar (4-4-5, 4-5-4, etc.), use period names as dates, and month names won't resolve correctly.

  • Get your period names fast via Bulk Add Periods and GL in the CloudExtend Excel add-in.


Overview

Every XAVI formula that returns financial data, such as XAVI.BALANCE and XAVI.TYPEBALANCE, requires a period argument to tell NetSuite the dates to report on.

The correct period format depends on your NetSuite accounting calendar. Most organizations can use Excel dates or month labels, while organizations with custom fiscal calendars should use NetSuite period names.

This article explains how XAVI resolves that period, what input formats are accepted, and how to handle custom fiscal calendars where periods don't align to calendar months.


How XAVI resolves a period from a date

When you enter a date in a period argument, XAVI does not filter for transactions on that single day.

Instead, it determines which accounting period that date falls in and uses NetSuite's period definition, including the period's actual start and end dates, when it runs the query.


Supported Period Input Formats

XAVI accepts several period formats, allowing you to build reports using Excel dates, period labels, or NetSuite period identifiers.

You can type any of the following directly into a formula, or reference a cell that contains the value:

Month and Period Labels

Month labels are flexible. XAVI automatically normalizes them to the MMM YYYY format before sending them to NetSuite.

ℹ️ Use a space, not punctuation, between month and year

Input Format

Examples

Abbreviated month + year

Jan 2025, Feb 2026

Full month name

January 2025

Two-digit year

Jan 25Jan 2025

Underscore or space

Jan_2025, Jan 2025

Hyphen

Jan-2025Jan 2025

Note: If your company uses a custom fiscal calendar (4-4-5, 4-5-4, 5-4-4, etc.), these month labels may not correspond to your accounting periods. In that case, use your NetSuite period names instead.

Excel Date Values

XAVI accepts either Excel dates or Excel date serials.

Input

Example

Resolves to

Calendar date

1/15/2025, 06/01/2026

Dates are automatically resolved to the accounting period containing that date.

Excel serial

45658

2025-01-01Jan 2025

46174

2026-06-01Jun 2026

Rule: Integers ≥ 10,000 that map to a date in 1990–2100 are Excel serials, not posting IDs.

Sample Report uses this when the month headers are =DATE($E$3, COLUMN()-…, 1).

Period Names

If your NetSuite periods use custom names, pass the period name directly.

Examples:

  • P01 2025

  • PY 01 2025

  • ADJ 2025

This is the recommended format for organizations using custom fiscal calendars.

💡 Tip: The most reliable input format is your period name. You can find your period names using Bulk Add GL and Periods in the app.

Period Ranges

Both fromPeriod and toPeriod accept any supported format.

Example

Result

Jan 2025Mar 2025

Jan 2025 to Mar 2025

Sums all periods in the range

20242025

2024 to 2025

Full-year range

101103

101 to 103

Posting ID range

Same from & to

Single component only

For Balance Sheet formulas, toPeriod is optional. If omitted, XAVI treats fromPeriod as the "as of" period.

Unsupported Formats

These inputs return #N/A.

Input

Reason

394, 112, 101

Period internal Ids not supported

"394"

Period internal Ids not supported

P2 FY2025

Not a recognized pattern

Q1 2025

Quarters not parsed

Period 13 Adjustments

Custom period names

2025-03

yyyy-MM not supported (use Mar 2025 or a date serial)

not a period

Unrecognized text

Empty fromPeriod on P&L

Required for Income/Expense accounts


NetSuite period name alignment

The period label XAVI sends to NetSuite must match your NetSuite accounting calendar. If your period names differ from standard English Month YYYY format, use the exact period name from NetSuite.

Adjustment periods: Pass the period name as a quoted string.

For example, if the adjustment period name is PY 01 2025 and you need the balance for 4100:

=XAVI.BALANCE("4100", "PY 01 2025", "PY 01 2025")


Driving an entire sheet from a single year cell

Instead of editing every formula when you roll to a new year, point all your period arguments at one input cell.

Explicit months

Keep the year in $B$1 and build full dates with Excel's DATE function:

  • =DATE($B$1, 1, 1) → January

  • =DATE($B$1, 3, 1) → March

  • Any day within the month resolves to the correct period. Using the first day of each month keeps things predictable.

Change the value in $B$1 and all dependent formulas update automatically on the next calculation to the new year.

⚠️ Non-calendar periods: If your accounting periods do not align with calendar months, the quick-start reports (CFO Flash and Income Statement) may not display correctly. Replace the date arguments with your actual period names from NetSuite. You can get a list of your periods using Bulk Add GL and Periods in the app.


Using Custom Fiscal Calendars and Period Names

Many organizations use custom fiscal calendars — such as 4-4-5, 4-5-4, 5-4-4, or other period structures — where accounting periods do not align to calendar month boundaries. Period names like P01 2025 or P03 2024 cannot be resolved from a date alone because the start and end of each period are unique to your company's configuration in NetSuite.

For users on custom period structures, the recommended approach is to reference the period name of each accounting period directly in your XAVI formulas. This section explains what period names are, how to find them, and how to structure your Excel workbook so that names drive your XAVI formulas while your headers display clean, human-readable period names.

What is a period name?

Every accounting period in NetSuite is assigned a unique period name when it is created. When you automatically generate accounting periods, the period names are fairly easy to understand, i.e., they are Jan 2026, Feb 2026, etc.

When you pass a period name to an XAVI formula, NetSuite returns data for exactly that period, regardless of how the period name is formatted or whether its dates cross month boundaries.

Here is a sample mapping from a custom accounting period structure:

Period Name

Start Date

End Date

Quarter

P09 2025

Aug 27, 2025

Sep 30, 2025

Q3 2025

P10 2025

Oct 1, 2025

Oct 28, 2025

Q4 2025

P11 2025

Oct 29, 2025

Nov 25, 2025

Q4 2025

P12 2025

Nov 26, 2025

Dec 30, 2025

Q4 2025

ADJ 2025

Dec 31, 2025

Dec 31, 2025

Note: The dates shown are illustrative examples. Your own period start and end dates will differ based on your specific NetSuite configuration.


How to find your period names

There are two ways to find your NetSuite accounting period names.

Option 1: NetSuite UI

  1. In NetSuite, go to Setup > Accounting > Manage Accounting Periods.

Option 2: Bulk Add Periods and GL (Recommended)

The Bulk Add Periods and GL feature in CloudExtend Excel generates a structured export of all your accounting periods, including period names, start dates, and end dates. This is the fastest way to capture a complete, accurate mapping for use in your XAVI workbooks.

  1. Open the CloudExtend Excel add-in and navigate to the Bulk Add Periods and GL panel.

  2. Run the period export for the fiscal years you want to report on.

  3. The exported sheet includes the Internal ID, period name, start date, end date, and parent quarter for each period, ready to reference in your report workbook.

💡 Tip: Keep the exported period mapping on a dedicated reference sheet (for example, named Periods) within your workbook. You can then use VLOOKUP or XLOOKUP to pull the correct period name into any reporting sheet automatically.

Did this answer your question?