Chapter 9.1

Saved Searches

Master NetSuite's most powerful reporting tool: saved searches with filters, formulas, summarization, and scheduling.

Saved Searches Overview

Saved searches are NetSuite's Swiss Army knife for data retrieval. They power reports, KPIs, portlets, dropdowns, script data sources, and mass updates.

Lists Search Saved Searches New
Use Case Description Example
Reports Ad-hoc and scheduled data retrieval Open invoices by customer
Dashboard Portlets Real-time KPIs and lists Top 10 customers this month
Form Dropdowns Filter available selections Active vendors only
Script Data Sources Query data in SuiteScript Process pending orders
Mass Updates Identify records for bulk changes Inactive customers to archive
Workflows Condition evaluation Escalate overdue tasks

Search Components

Component Purpose Configuration
Criteria Filter which records appear Standard filters, expressions
Results Columns to display Fields, formulas, summaries
Available Filters User-facing runtime filters Dropdown parameters

Filter Types

Filter Type Description Example
Standard Simple field comparisons Status = Open
Date Range Relative or absolute dates Created within last 30 days
Is Empty / Not Empty Null value checks Email is not empty
Contains / Starts With Text pattern matching Name contains "Corp"
Any Of / None Of Multi-value selection Type is any of: Invoice, Credit Memo
Formula SQL expression CASE WHEN {amount} > 1000 THEN 1 ELSE 0 END = 1

Formula Patterns

-- DATE CALCULATIONS Days Since: {today} - {trandate} Days Until Due: {duedate} - {today} Month Name: TO_CHAR({trandate}, 'Month YYYY') Fiscal Quarter: 'Q' || TO_CHAR({trandate}, 'Q') -- TEXT MANIPULATION Concatenate: {firstname} || ' ' || {lastname} Extract: SUBSTR({tranid}, 1, 3) Upper/Lower: UPPER({name}) / LOWER({email}) -- CONDITIONAL LOGIC Simple IF: CASE WHEN {amount} > 0 THEN 'Credit' ELSE 'Debit' END Nested CASE: CASE WHEN {daysoverdue} > 90 THEN 'Critical' WHEN {daysoverdue} > 60 THEN 'High' WHEN {daysoverdue} > 30 THEN 'Medium' ELSE 'Current' END Null Check: NVL({memo}, 'No memo') -- NUMERIC CALCULATIONS Percentage: ROUND({amount} / NULLIF({total}, 0) * 100, 2) Absolute: ABS({amount})

Summary Types

Summary Function Use Case
Group Group by this field Customer name, Month
Sum Total numeric values Total sales amount
Count Count of records Number of transactions
Average Mean value Average order value
Maximum/Minimum Highest/lowest value Largest order, oldest invoice

Joins and Related Records

SEARCH JOINS
═══════════════════════════════════════════════════════════════

TRANSACTION SEARCH (Invoice)
│
├── Main Record Fields
│   └── {tranid}, {trandate}, {amount}, {status}
│
├── Customer Join (entity...)
│   └── {entity.companyname}, {entity.email}, {entity.salesrep}
│
├── Item Join (item...)
│   └── {item.displayname}, {item.type}, {item.class}
│
├── Created By Join (createdby...)
│   └── {createdby.entityid}, {createdby.email}
│
├── Applied To Join (appliedtotransaction...)
│   └── {appliedtotransaction.tranid}, {appliedtotransaction.type}
│
└── Custom Record Join (custbody_xxx...)
    └── {custbody_project.custrecord_project_manager}

JOIN NOTATION:
───────────────────────────────────────────────────────────────
{fieldname}              Main record field
{join.fieldname}         Related record field
{join.join2.fieldname}   Nested join (2 levels max)
        

Performance Optimization

⚠️ Search Performance Best Practices
  • Use indexed fields in filters: Internal ID, Date, Status, Type
  • Avoid formula filters: Filter first, then calculate
  • Limit result columns: Only include fields you need
  • Use date ranges: Don't search all historical data
  • Avoid "contains" on large text fields: Use "starts with" instead
  • Pre-filter with standard filters: Before applying formulas

Search Scheduling

Lists Search Saved Searches Edit Email
Option Description
Recipients Employees, groups, or specific email addresses
Schedule Daily, Weekly, Monthly, or specific days
Time Specific time of day (in account timezone)
Format CSV, PDF, or Excel attachment
Send If Empty Option to suppress emails with no results
🎯 Consultant Insight
Create a "Saved Search Library" document for each implementation. Include search name, ID, purpose, key filters, and owner. Clients often have hundreds of searches with no documentation—this becomes a maintenance nightmare. Also establish naming conventions: prefix with department or function (e.g., FIN_Open_AP, OPS_Pending_Orders).

Saved Search Checklist

Chapter 9.2

Reports

Standard reports, Financial Report Builder, and custom report configurations.

Reports Overview

NetSuite provides hundreds of standard reports across all functional areas. Understanding report types and customization options helps deliver the right information to stakeholders.

Report Type Description Examples
Financial Statements GAAP-compliant financial reports Balance Sheet, Income Statement, Cash Flow
Transaction Reports Lists of transactions with details Sales by Customer, A/R Aging, Open POs
Summary Reports Aggregated data by dimension Sales by Item Category, Expenses by Dept
Comparative Reports Period-over-period analysis Budget vs. Actual, YoY Comparison
Register Reports Detailed transaction registers General Ledger, A/P Register

Financial Report Builder

Reports Financial Financial Report Builder

The Financial Report Builder creates customized financial statements with full control over row/column structure.

Feature Description
Row Layout Define account groups, subtotals, headers, calculated rows
Column Layout Define periods, subsidiaries, dimensions, calculations
Filtering Restrict by subsidiary, location, department, class
Calculated Rows Sum, difference, percentage of other rows
Drill-Down Click amounts to see underlying transactions
Export Excel, PDF, CSV formats

Key Financial Reports

Report Purpose Key Filters
Balance Sheet Assets, liabilities, equity at point in time As of date, subsidiary
Income Statement Revenue and expenses for period Date range, subsidiary
Cash Flow Statement Cash movement by activity Date range, subsidiary
Trial Balance All account balances Date range, include zeros
General Ledger Transaction detail by account Account, date range
A/R Aging Outstanding receivables by age As of date, aging periods
A/P Aging Outstanding payables by age As of date, aging periods

Report Customization Process

Run Report
Customize
Add/Remove Columns
Save As

Report Scheduling

Schedule reports for automatic distribution:

Setting Options
Frequency Daily, Weekly, Monthly, Quarterly
Format PDF, Excel, CSV
Recipients Employees, roles, email addresses
Subject Line Custom email subject
💡 Financial Reporting Pack
Create a standard "Financial Reporting Pack" for monthly close: Balance Sheet, Income Statement (with budget comparison), Cash Flow, Departmental P&Ls, and Key Metrics. Schedule to distribute on close day +2 to give accounting time to complete close.
🎯 Consultant Insight
When building custom financial reports, always start by asking "What decisions will this report inform?" Map report columns to actual business questions. Avoid building 50-column reports when 5 columns answer the real question. Also verify sign conventions—NetSuite shows debits as positive, which confuses users expecting income as positive.

Report Setup Checklist

Chapter 9.3

Datasets & Workbooks

SuiteAnalytics Workbook for advanced multi-dataset analysis with pivots and visualizations.

SuiteAnalytics Workbook Overview

SuiteAnalytics Workbook provides a modern, Excel-like analytics experience within NetSuite with multi-dataset joins, advanced pivoting, and rich visualizations.

Analytics Dataset Builder New Dataset
Feature Saved Searches SuiteAnalytics Workbook
Data Sources Single record type with joins Multiple datasets with joins
Joins 2 levels maximum Unlimited dataset joins
Pivoting Basic summary grouping Full pivot table functionality
Visualizations Highlighting only Charts, graphs, conditional formatting
Interactivity Limited Drill-down, slice and dice
Performance Can be slow with complexity Optimized for large datasets

Dataset Components

Component Description
Record Type Primary record (Transaction, Customer, Item)
Fields Columns to include in dataset
Formulas Calculated fields using SQL expressions
Criteria Filters to restrict records
Joins Related records to include

Workbook Structure

WORKBOOK ├── DATA │ ├── Dataset 1: Transactions │ │ ├── Fields: Date, Amount, Customer, Item │ │ └── Filters: Date range, Status │ ├── Dataset 2: Customers │ │ └── Fields: Name, Industry, Sales Rep │ └── Joins: Transactions.Customer = Customers.ID │ ├── PIVOT TABLES │ ├── Sales by Month x Customer │ └── Sales by Item x Region │ ├── CHARTS │ ├── Monthly Trend Line │ ├── Top 10 Customers Bar Chart │ └── Category Pie Chart │ └── TABLES └── Transaction Detail List

Visualization Types

Chart Type Best For Example
Line Chart Trends over time Monthly sales trend
Bar Chart Category comparisons Sales by region
Pie Chart Part of whole Revenue by product line
Area Chart Cumulative trends Stacked revenue by source
KPI Tile Single metric highlight Total revenue, Order count

Pivot Tables

Pivot tables summarize large datasets dynamically:

PIVOT TABLE EXAMPLE
═══════════════════════════════════════════════════════════════

CONFIGURATION:
  Rows:     Customer Industry
  Columns:  Fiscal Quarter
  Values:   Sum of Amount, Count of Transactions
  Filters:  Year = 2025

RESULT:
───────────────────────────────────────────────────────────────
                │    Q1 2025    │    Q2 2025    │    Q3 2025    │
Industry        │ Amount  Count │ Amount  Count │ Amount  Count │
────────────────┼───────────────┼───────────────┼───────────────┤
Manufacturing   │ $425K    142  │ $512K    168  │ $489K    155  │
Retail          │ $312K    287  │ $398K    324  │ $445K    356  │
Services        │ $189K     67  │ $223K     78  │ $256K     89  │
Technology      │ $567K     45  │ $623K     52  │ $701K     58  │
────────────────┼───────────────┼───────────────┼───────────────┤
Grand Total     │ $1.49M   541  │ $1.76M   622  │ $1.89M   658  │
        

Multi-Dataset Joins

DATASET JOIN EXAMPLE
═══════════════════════════════════════════════════════════════

USE CASE: Customer Profitability Analysis

Dataset 1: Invoices
  └── Customer ID, Invoice Amount, Invoice Date

Dataset 2: Payments
  └── Customer ID, Payment Amount, Payment Date

Dataset 3: Support Cases
  └── Customer ID, Case Count, Resolution Hours

Dataset 4: Customers
  └── Customer ID, Name, Industry, Acquisition Date

JOINS:
───────────────────────────────────────────────────────────────
  Invoices.Customer  ──►  Customers.ID
  Payments.Customer  ──►  Customers.ID
  Cases.Customer     ──►  Customers.ID

RESULT: Single view with revenue, collections, and support cost
        by customer—impossible in a single saved search!
        
💡 Dataset Reusability
Create reusable datasets for common analysis needs: "Core Transaction Dataset," "Customer Master Dataset," "Item Catalog Dataset." Multiple workbooks can reference the same dataset, ensuring consistency and reducing maintenance.
🎯 Consultant Insight
SuiteAnalytics Workbook is the future of NetSuite reporting. Start moving power users from complex saved searches to workbooks. The learning curve is minimal for anyone with Excel pivot table experience. Key advantage: workbooks let you ask follow-up questions (slice, filter, drill) without creating new searches.

Workbook Development Checklist

Chapter 9.4

Analytics Warehouse

NetSuite Analytics Warehouse (NSAW) for high-performance analytics with pre-built data models.

NSAW Overview

NetSuite Analytics Warehouse provides a separate analytics database optimized for reporting workloads, eliminating the performance impact of complex queries on the production system.

Feature Standard NetSuite Analytics Warehouse
Query Performance Competes with transactions Dedicated analytics engine
Data Model Normalized (operational) Star schema (analytical)
Historical Data Limited by performance Optimized for historical analysis
Complex Joins Limited by performance Pre-built fact/dimension joins
Refresh Real-time Near real-time (minutes)

NSAW Architecture

ANALYTICS WAREHOUSE ARCHITECTURE
═══════════════════════════════════════════════════════════════

  NETSUITE ERP                     NSAW (Oracle Cloud)
+-------------------+          +----------------------------+
| Transaction Data  |          |  PRE-BUILT DATA MODELS     |
|  - Sales Orders   |  Data    |  +----------+ +----------+ |
|  - Invoices       | -------> |  |Financial | |  Sales   | |
|  - Payments       | Repl.    |  |  Cube    | |  Cube    | |
|  - Inventory      |          |  +----------+ +----------+ |
|                   |          |  +----------+ +----------+ |
| Master Data       |          |  |Procure-  | |Inventory | |
|  - Customers      |          |  |ment Cube | |  Cube    | |
|  - Items          |          |  +----------+ +----------+ |
|  - Vendors        |          |                            |
+-------------------+          |  ANALYTICS INTERFACE       |
                               |  - Dashboard Builder       |
                               |  - Reports Builder         |
                               |  - Query Direct            |
                               +----------------------------+
                                         |
                                         v
                               +----------------------------+
                               |  OUTPUT                    |
                               |  - Embedded Dashboards     |
                               |  - External BI Tools       |
                               |  - Export (Excel)          |
                               +----------------------------+
        

Pre-Built Subject Areas

Subject Area Key Facts Key Dimensions
Sales Amount, Quantity, Margin Customer, Item, Time, Location
Purchasing PO Amount, Receipt Qty Vendor, Item, Time
Inventory On Hand, Available, Committed Item, Location, Lot
Financials Balance, Debit, Credit Account, Period, Subsidiary
Projects Hours, Cost, Revenue Project, Employee, Time

Pre-Built Analytics Packs

NSAW includes ready-to-use analytics for common business needs:

Analytics Pack Key Metrics
Financial Analytics P&L trends, balance sheet analysis, cash flow, working capital
Sales Analytics Pipeline analysis, win/loss, sales cycle, rep performance
Procurement Analytics Spend analysis, vendor performance, PO cycle time
Inventory Analytics Turns, aging, stockouts, demand planning
Revenue Analytics ARR/MRR trends, churn, cohort analysis
ℹ️ Contextual Insights
NSAW provides AI-powered contextual insights that automatically surface anomalies, trends, and recommendations. The system learns from your data patterns and proactively highlights items requiring attention—like a significant variance from last month or unusual transaction patterns.

Dashboard Builder

Create executive dashboards with drag-and-drop interface:

EXECUTIVE DASHBOARD EXAMPLE
═══════════════════════════════════════════════════════════════

┌─────────────────────────────────────────────────────────────┐
│                    CEO DASHBOARD                            │
├──────────────────────────┬──────────────────────────────────┤
│   REVENUE YTD            │   GROSS MARGIN TREND             │
│   ┌─────────────────┐    │   ┌─────────────────────────────┐│
│   │                 │    │   │    ╭──────╮                 ││
│   │   $12.4M        │    │   │ ───╯      ╰───              ││
│   │   ▲ 15% vs LY   │    │   │                             ││
│   │                 │    │   │  Jan Feb Mar Apr May Jun    ││
│   └─────────────────┘    │   └─────────────────────────────┘│
├──────────────────────────┼──────────────────────────────────┤
│   TOP 10 CUSTOMERS       │   SALES BY REGION                │
│   ┌─────────────────┐    │   ┌─────────────────────────────┐│
│   │ Acme Corp  $2.1M│    │   │     ████ West 35%          ││
│   │ Beta Inc   $1.8M│    │   │     ████ East 28%          ││
│   │ Gamma LLC  $1.2M│    │   │     ████ Central 22%       ││
│   │ ...             │    │   │     ████ International 15%  ││
│   └─────────────────┘    │   └─────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘
        

When to Use NSAW

💡 NSAW Use Cases
  • Complex multi-subsidiary reporting: Consolidated views across all entities
  • Executive dashboards: Real-time KPIs without performance impact
  • Historical trend analysis: Multi-year comparisons
  • External BI integration: Feed Tableau, Power BI, Looker
  • Ad-hoc analysis: Self-service analytics for business users
🎯 Consultant Insight
NSAW is an add-on license—factor this into implementation budgets. It's most valuable for organizations with 3+ subsidiaries, heavy reporting needs, or existing BI tool investments. For simpler needs, SuiteAnalytics Workbook may suffice.

NSAW Planning Checklist

Chapter 9.5

SuiteAnalytics Connect

Connect external BI tools to NetSuite data using ODBC/JDBC.

SuiteAnalytics Connect Overview

SuiteAnalytics Connect enables direct database connectivity from external BI tools like Tableau, Power BI, and custom applications using ODBC and JDBC drivers.

BI Tool Connection Type Notes
Tableau ODBC Native connector available
Power BI ODBC Requires ODBC driver setup
Excel ODBC Query and refresh data directly
Custom Apps JDBC Java-based applications

Connection Architecture

SUITEANALYTICS CONNECT ARCHITECTURE
═══════════════════════════════════════════════════════════════

+-------------------------------------------------------------+
|                    EXTERNAL TOOLS                            |
|  +--------+  +--------+  +--------+  +--------+             |
|  | Excel  |  |Power BI|  |Tableau |  | Custom |             |
|  +---+----+  +---+----+  +---+----+  +---+----+             |
+------+----------+----------+----------+---------------------|
       |          |          |          |
       v          v          v          v
+-------------------------------------------------------------+
|              SUITEANALYTICS CONNECT                          |
|  +------------------------+  +------------------------+     |
|  |     ODBC/JDBC          |  |      SuiteQL           |     |
|  |      Drivers           |  |      REST API          |     |
|  +-----------+------------+  +-----------+------------+     |
|              |                           |                   |
|              v                           v                   |
|  +--------------------------------------------------------+ |
|  |              CONNECT SERVICE                            | |
|  |  - Authentication (Token-based)                         | |
|  |  - Query Processing                                     | |
|  |  - Role-based Data Access                               | |
|  |  - Governance Limits                                    | |
|  +--------------------------------------------------------+ |
+-------------------------------------------------------------+
                          |
                          v
+-------------------------------------------------------------+
|                    NETSUITE DATA                             |
|  +-------------+ +-------------+ +-------------+            |
|  | Transactions| |  Entities   | |    Items    |            |
|  +-------------+ +-------------+ +-------------+            |
+-------------------------------------------------------------+
        

Key Considerations

Consideration Details
Query Governance Queries consume governance units; monitor usage
Row Limits Large queries may hit row limits; use pagination
Performance Complex queries impact NetSuite performance
Schema Uses normalized operational schema
Authentication Token-based authentication required

SuiteQL

SuiteQL is NetSuite's SQL-like query language for direct data access:

SUITEQL EXAMPLES
═══════════════════════════════════════════════════════════════

BASIC SELECT
───────────────────────────────────────────────────────────────
SELECT
    t.tranid,
    t.trandate,
    e.companyname AS customer,
    t.foreigntotal AS amount
FROM
    transaction t
    JOIN entity e ON t.entity = e.id
WHERE
    t.type = 'CustInvc'
    AND t.trandate >= TO_DATE('2025-01-01', 'YYYY-MM-DD')
ORDER BY
    t.trandate DESC

AGGREGATION
───────────────────────────────────────────────────────────────
SELECT
    TO_CHAR(t.trandate, 'YYYY-MM') AS month,
    COUNT(*) AS invoice_count,
    SUM(t.foreigntotal) AS total_amount,
    AVG(t.foreigntotal) AS avg_amount
FROM
    transaction t
WHERE
    t.type = 'CustInvc'
    AND t.trandate >= ADD_MONTHS(SYSDATE, -12)
GROUP BY
    TO_CHAR(t.trandate, 'YYYY-MM')
ORDER BY
    month

JOIN MULTIPLE TABLES
───────────────────────────────────────────────────────────────
SELECT
    c.companyname,
    c.email,
    COUNT(t.id) AS order_count,
    SUM(t.foreigntotal) AS lifetime_value,
    MAX(t.trandate) AS last_order_date
FROM
    customer c
    LEFT JOIN transaction t ON c.id = t.entity
        AND t.type = 'SalesOrd'
GROUP BY
    c.id, c.companyname, c.email
HAVING
    SUM(t.foreigntotal) > 10000
ORDER BY
    lifetime_value DESC
        

ODBC Setup

Configure ODBC connection for external tools:

Step Action
1. Download Driver Get ODBC driver from NetSuite (Setup > Company > Enable Features)
2. Install Driver Run installer on client machine
3. Configure DSN Create Data Source Name in ODBC Administrator
4. Set Credentials Account ID, Role ID, Email, Password (or token)
5. Test Connection Verify connectivity before using in tools

Governance & Limits

⚠️ Connect Governance
  • Concurrent queries: Limited per account (typically 5-10)
  • Query timeout: Long-running queries may be terminated
  • Row limits: Large result sets may be paginated
  • Schedule off-peak: Heavy queries should run during low-usage periods
  • Role permissions: Connect respects role-based data access

Common Use Cases

Use Case Tool Approach
Executive Dashboards Power BI / Tableau Scheduled refresh from saved queries
Financial Modeling Excel ODBC connection with pivot tables
Data Warehouse ETL Custom/ETL Tools SuiteQL extracts via REST API
Custom Applications Web Apps JDBC or REST/SuiteQL integration
🎯 Consultant Insight
SuiteAnalytics Connect is often the answer when clients say "We need to get data into [BI tool]." Start with SuiteQL for prototyping—it's faster to iterate than ODBC setup. For production dashboards, consider whether real-time is truly needed; often a nightly extract to a data warehouse provides better performance.

Connect Setup Checklist

Chapter 9.6

Industry Reporting

Industry-specific reporting patterns and KPIs for different business types.

Industry KPIs

Different industries require different key metrics. Configure reports and dashboards to highlight industry-relevant KPIs.

👔 Professional Services
Professional Services Consideration
Key metrics: Production yield, scrap rate, WIP value, machine utilization, on-time delivery, cost variance.
👔 Professional Services
Professional Services Consideration
Key metrics: Inventory turns, fill rate, gross margin %, DSO, DPO, order accuracy, pick rate.
👔 Professional Services
Professional Services Consideration
Key metrics: Same-store sales, average transaction value, conversion rate, inventory turnover, shrinkage rate.
👔 Professional Services
Professional Services Consideration
Key metrics: Utilization rate, realization rate, project margin, revenue per employee, backlog, NPS.
👔 Professional Services
Professional Services Consideration
Key metrics: MRR/ARR, churn rate, LTV, CAC, net retention, time to value, support tickets per user.
👔 Professional Services
Professional Services Consideration
Key metrics: Program expense ratio, fundraising efficiency, donor retention rate, grant utilization, operating reserve ratio.
👔 Professional Services
Professional Services Consideration
Key metrics: Days in A/R, collection rate, denial rate, bad debt %, cost per encounter.

Manufacturing KPI Details

KPI Formula Target
Inventory Turns COGS / Average Inventory 4-8x annually
Days Sales in Inventory 365 / Inventory Turns 45-90 days
Gross Margin % (Revenue - COGS) / Revenue 25-40%
On-Time Delivery Orders Shipped On Time / Total Orders >95%
Production Variance Actual Cost - Standard Cost <5%
Scrap Rate Scrap Value / Production Value <2%

Wholesale/Distribution KPI Details

KPI Formula Target
Gross Margin Return on Inventory Gross Margin $ / Average Inventory >200%
Fill Rate Lines Shipped Complete / Lines Ordered >98%
Order Cycle Time Ship Date - Order Date <2 days
Backorder Rate Backorder Lines / Total Lines <2%
Revenue per Employee Total Revenue / FTE Count $500K+

Software/SaaS KPI Details

KPI Formula Target
Monthly Recurring Revenue Sum of monthly subscription fees Growing
Annual Recurring Revenue MRR x 12 Growing
Customer Churn Rate Lost Customers / Starting Customers <5% annually
Net Revenue Retention (Starting ARR + Expansion - Churn) / Starting ARR >110%
Customer Acquisition Cost Sales & Marketing Spend / New Customers Varies
LTV:CAC Ratio Customer Lifetime Value / CAC >3:1

Professional Services KPI Details

KPI Formula Target
Utilization Rate Billable Hours / Available Hours 70-80%
Realization Rate Billed Amount / (Hours x Standard Rate) >90%
Revenue per Consultant Total Revenue / Consultant FTE $200-400K
Project Margin (Revenue - Direct Costs) / Revenue 30-50%
Backlog Contracted but undelivered revenue 3-6 months

Nonprofit KPI Details

KPI Formula Target
Program Expense Ratio Program Expenses / Total Expenses >75%
Fundraising Efficiency Funds Raised / Fundraising Costs >4:1
Donor Retention Rate Repeat Donors / Prior Year Donors >45%
Grant Utilization Grant Spent / Grant Received Per terms
Operating Reserve Ratio Unrestricted Net Assets / Annual Expenses 3-6 months

Healthcare KPI Details

KPI Formula Target
Days in A/R A/R Balance / (Annual Revenue / 365) <40 days
Collection Rate Payments Collected / Charges >95%
Denial Rate Claims Denied / Claims Submitted <5%
Bad Debt % Bad Debt / Gross Revenue <2%
Cost per Encounter Total Costs / Patient Encounters Varies

Common Industry Reports

Industry Key Reports
Manufacturing Production variance, BOM cost analysis, WIP aging
Wholesale Inventory aging, backorder analysis, vendor scorecard
Retail Store performance, category analysis, promotion ROI
Services Project profitability, resource utilization, billing status
Software Subscription metrics, renewal pipeline, revenue recognition

Building Industry Dashboards

DASHBOARD DESIGN FRAMEWORK
═══════════════════════════════════════════════════════════════

1. IDENTIFY KEY QUESTIONS
   └── What decisions does this dashboard inform?

2. SELECT METRICS (5-7 MAX)
   ├── Leading indicators (predict future)
   └── Lagging indicators (measure past)

3. DEFINE DATA SOURCES
   ├── Saved searches for real-time
   ├── Workbooks for analysis
   └── NSAW for historical trends

4. DESIGN LAYOUT
   ├── Big numbers for KPIs
   ├── Trends for patterns
   └── Tables for details

5. SET REFRESH CADENCE
   ├── Real-time for operational
   ├── Daily for management
   └── Weekly/Monthly for executive

6. CONFIGURE ALERTS
   └── Threshold-based notifications
        
🎯 Consultant Insight
The best KPI dashboards answer "So what?" Every metric should drive action. If a metric goes red, users should know exactly what to do. During discovery, ask stakeholders: "If this number changed significantly, what would you do differently?" If they can't answer, the metric may not belong on the dashboard.

Industry Reporting Checklist

Chapter 9.7

NSAW Deep Dive

Advanced Analytics Warehouse techniques: custom datasets, calculated fields, and performance optimization.

NSAW Architecture Overview

NETSUITE ANALYTICS WAREHOUSE ARCHITECTURE
═══════════════════════════════════════════════════════════════════

    NETSUITE ERP                              NSAW (Oracle Cloud)
┌───────────────────┐                    ┌────────────────────────────┐
│ Transaction Data  │                    │  DIMENSIONAL DATA MODEL    │
│  - Sales Orders   │   ETL Pipeline     │  ┌──────────────────────┐  │
│  - Invoices       │ ─────────────────→ │  │ FACT TABLES          │  │
│  - Payments       │   (Nightly Sync)   │  │  - Transaction Lines │  │
│  - Inventory      │                    │  │  - GL Journal Lines  │  │
│                   │                    │  │  - Item Fulfillments │  │
│ Master Data       │                    │  └──────────────────────┘  │
│  - Customers      │                    │  ┌──────────────────────┐  │
│  - Items          │                    │  │ DIMENSION TABLES     │  │
│  - Vendors        │                    │  │  - Customer_Dim      │  │
│  - Employees      │                    │  │  - Item_Dim          │  │
└───────────────────┘                    │  │  - Time_Dim          │  │
                                         │  │  - Location_Dim      │  │
                                         │  └──────────────────────┘  │
                                         │                            │
                                         │  QUERY ENGINE              │
                                         │  - Oracle Analytics Cloud  │
                                         │  - SQL Interface           │
                                         │  - BI Publisher            │
                                         └────────────────────────────┘

KEY CHARACTERISTICS:
  Data refresh: Nightly (typically 2-4 AM account time zone)
  Latency: T-1 (yesterday's data by morning)
  Retention: Historical data preserved indefinitely
  Scale: Billions of rows supported
  Access: SQL, Workbooks, Connect, REST API
        

Enabling NSAW

Setup Company Enable Features Analytics
  • NetSuite Analytics Warehouse SKU must be purchased
  • Administrator role required for initial setup
  • Initial data sync takes 24-48 hours
  • Check sync status: Setup > Analytics > SuiteAnalytics Warehouse > Sync Status

NSAW Subject Areas

NSAW organizes data into pre-built subject areas for common analytics needs.

Subject Area Primary Facts Key Dimensions Use Cases
Transaction Lines Amount, Quantity, Rate Item, Customer, Date, Location Sales analysis, margin reports
GL Journal Lines Debit, Credit, Amount Account, Period, Department, Class Financial reporting, trial balance
Inventory Balance On Hand, Available, On Order Item, Location, Bin Stock analysis, reorder planning
A/R Aging Balance, Days Outstanding Customer, Invoice, Aging Bucket Collections, credit risk
A/P Aging Balance, Days Outstanding Vendor, Bill, Aging Bucket Cash management, vendor payments
Budget Budget Amount Account, Period, Department Budget vs actual, variance
Time Tracking Hours, Billable Amount Employee, Customer, Project Utilization, project costing

SQL Query Patterns

NSAW supports standard SQL via SuiteAnalytics Connect. Essential query patterns:

Pattern 1: Sales Trend Analysis

-- Monthly Sales by Customer Segment
SELECT
    TO_CHAR(t.trandate, 'YYYY-MM') AS month,
    c.category AS customer_segment,
    SUM(tl.netamount) AS revenue,
    COUNT(DISTINCT t.id) AS order_count,
    COUNT(DISTINCT t.entity) AS unique_customers
FROM
    transaction t
    JOIN transactionline tl ON t.id = tl.transaction
    JOIN customer c ON t.entity = c.id
WHERE
    t.type = 'SalesOrd'
    AND t.trandate >= ADD_MONTHS(SYSDATE, -12)
    AND tl.mainline = 'F'
GROUP BY
    TO_CHAR(t.trandate, 'YYYY-MM'),
    c.category
ORDER BY
    month, revenue DESC;
        

Pattern 2: Inventory Turnover

-- Inventory Turnover by Product Category
WITH cogs AS (
    SELECT
        i.custitem_category AS category,
        SUM(tl.costestimate) AS total_cogs
    FROM transactionline tl
        JOIN item i ON tl.item = i.id
        JOIN transaction t ON tl.transaction = t.id
    WHERE t.type IN ('CustInvc', 'CashSale')
        AND tl.mainline = 'F'
    GROUP BY i.custitem_category
),
avg_inventory AS (
    SELECT
        i.custitem_category AS category,
        AVG(ib.quantityonhand * i.averagecost) AS avg_inv_value
    FROM inventorybalance ib
        JOIN item i ON ib.item = i.id
    GROUP BY i.custitem_category
)
SELECT
    c.category,
    c.total_cogs,
    ai.avg_inv_value,
    ROUND(c.total_cogs / NULLIF(ai.avg_inv_value, 0), 2) AS turnover_ratio,
    ROUND(365 / NULLIF(c.total_cogs / ai.avg_inv_value, 0), 1) AS days_on_hand
FROM cogs c
    JOIN avg_inventory ai ON c.category = ai.category
ORDER BY turnover_ratio DESC;
        

Pattern 3: Customer Lifetime Value

-- Customer LTV with Cohort Analysis
WITH first_purchase AS (
    SELECT
        entity,
        MIN(trandate) AS first_order_date,
        TO_CHAR(MIN(trandate), 'YYYY-Q') AS cohort
    FROM transaction
    WHERE type IN ('SalesOrd', 'CustInvc')
    GROUP BY entity
),
customer_revenue AS (
    SELECT
        t.entity,
        fp.cohort,
        fp.first_order_date,
        SUM(t.foreigntotal) AS total_revenue,
        COUNT(DISTINCT t.id) AS order_count,
        MAX(t.trandate) AS last_order_date,
        ROUND(MONTHS_BETWEEN(MAX(t.trandate), fp.first_order_date)) AS tenure_months
    FROM
        transaction t
        JOIN first_purchase fp ON t.entity = fp.entity
    WHERE
        t.type IN ('SalesOrd', 'CustInvc')
    GROUP BY
        t.entity, fp.cohort, fp.first_order_date
)
SELECT
    cohort,
    COUNT(*) AS customers,
    ROUND(AVG(total_revenue), 2) AS avg_ltv,
    ROUND(AVG(order_count), 1) AS avg_orders,
    ROUND(AVG(tenure_months), 1) AS avg_tenure_months,
    ROUND(SUM(total_revenue), 0) AS cohort_total_revenue
FROM customer_revenue
GROUP BY cohort
ORDER BY cohort;
        

Performance Optimization

Technique Implementation Impact
Filter Early Apply WHERE clauses before JOINs Reduce rows processed by 50-90%
Date Partitioning Always filter on trandate or period Leverage partition pruning
Select Specific Columns Avoid SELECT *; list needed columns Reduce I/O by 60-80%
Use Summary Tables Pre-aggregate for common queries 10-100x faster for dashboards
Limit Result Sets Use FETCH FIRST n ROWS Faster response for exploration
Avoid Functions on Indexed Columns Use range filters instead of TO_CHAR Enable index usage
QUERY OPTIMIZATION EXAMPLE
═══════════════════════════════════════════════════════════════════

x SLOW: Function on indexed column
SELECT * FROM transaction
WHERE TO_CHAR(trandate, 'YYYY') = '2024';

FAST: Range filter
SELECT * FROM transaction
WHERE trandate >= DATE '2024-01-01'
  AND trandate < DATE '2025-01-01';

x SLOW: SELECT *
SELECT * FROM transactionline tl
JOIN transaction t ON tl.transaction = t.id;

FAST: Specific columns
SELECT t.tranid, t.trandate, tl.item, tl.quantity, tl.amount
FROM transactionline tl
JOIN transaction t ON tl.transaction = t.id;

x SLOW: Late filtering
SELECT ... FROM large_table
JOIN another_table ON ...
WHERE large_table.date > SYSDATE - 30;

FAST: Filter in subquery
SELECT ... FROM (
    SELECT * FROM large_table WHERE date > SYSDATE - 30
) filtered
JOIN another_table ON ...;
        

NSAW vs Other Analytics Tools

Capability Saved Searches Workbooks NSAW
Data Freshness Real-time Real-time T-1 (nightly sync)
Data Model Operational (normalized) Operational Dimensional (star schema)
Historical Depth Current data only Current data only Years of history
Query Complexity Limited joins Multi-dataset Full SQL capability
Performance at Scale Degrades >100K rows Good to 1M rows Billions of rows
Cross-Subsidiary Complex Better Native support
External BI Tools CSV export only Limited JDBC/ODBC native
Best For Operational reports Self-service analytics Strategic analytics
🎯 Consultant Insight
NSAW is essential for organizations that need trend analysis beyond the current period. The T-1 latency makes it unsuitable for operational dashboards, but it's the only NetSuite-native option for multi-year trend analysis, cohort tracking, or feeding external BI tools like Tableau, Power BI, or Looker. Budget 24-48 hours for initial sync before UAT.

Custom Datasets in NSAW

Beyond pre-built subject areas, create custom datasets for specialized analytics needs.

Calculated Field Patterns

-- Year-over-Year Growth (current_amount - prior_year_amount) / NULLIF(prior_year_amount, 0) * 100 -- Running Total SUM(amount) OVER (PARTITION BY customer ORDER BY tran_date) -- Ranking RANK() OVER (PARTITION BY category ORDER BY amount DESC) -- Moving Average AVG(amount) OVER (ORDER BY tran_date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) -- Percent of Total amount / SUM(amount) OVER () * 100

Performance Optimization

Technique Impact When to Use
Limit Fields Reduces data transfer Always - only include needed fields
Date Filters Reduces rows scanned Always for transaction data
Pre-aggregation Reduces workbook processing For summary-only reports
Dataset Caching Reduces query frequency For stable reference data
Chapter 9.8

Workbook Mastery

Advanced workbook techniques: linked datasets, drill paths, and interactive dashboards.

Workbook Architecture

WORKBOOK COMPONENT HIERARCHY
═══════════════════════════════════════════════════════════════════

WORKBOOK
│
├── DATASETS (data sources)
│   ├── Primary Dataset (required)
│   │   ├── Record Type (Transaction, Customer, etc.)
│   │   ├── Criteria (filters)
│   │   └── Fields
│   │
│   └── Linked Datasets (optional)
│       └── Join conditions to primary
│
├── DATA DEFINITIONS
│   ├── Calculated Fields (formulas)
│   ├── Groupings (hierarchies)
│   └── Filters (user parameters)
│
└── VISUALIZATIONS
    ├── Tables (raw data view)
    ├── Pivot Tables (aggregations)
    ├── Charts (bar, line, pie, etc.)
    └── KPI Tiles (single metrics)

EXECUTION FLOW:
Datasets → Apply Criteria → Calculate Fields →
Group/Aggregate → Filter → Render Visualization
        

Dataset Design Patterns

Pattern 1: Transaction Analysis Dataset

DATASET: Sales Transaction Analysis
═══════════════════════════════════════════════════════════════════

Record Type: Transaction

Criteria:
  Type: is any of [Sales Order, Invoice, Cash Sale]
  Main Line: is false
  Date: within last 365 days

Fields:
  DIMENSIONS                      MEASURES
  ├── Transaction > Date          ├── Amount
  ├── Transaction > Document #    ├── Quantity
  ├── Customer > Name             ├── Cost
  ├── Customer > Category         ├── Tax Amount
  ├── Item > Name                 └── Foreign Amount
  ├── Item > Type
  ├── Location > Name
  ├── Department > Name
  └── Class > Name
        

Pattern 2: Multi-Dataset Customer 360

DATASET: Customer 360 View
═══════════════════════════════════════════════════════════════════

Primary Dataset: Customer
  Fields: ID, Name, Category, Sales Rep, Date Created

Linked Dataset 1: Sales History
  Join: Transaction.Entity = Customer.ID
  Fields: SUM(Amount) as Total Revenue, COUNT(*) as Order Count

Linked Dataset 2: Open A/R
  Join: Transaction.Entity = Customer.ID
  Criteria: Type = Invoice, Status = Open
  Fields: SUM(Amount Due) as Open Balance, MAX(Days Overdue)

Linked Dataset 3: Support Cases
  Join: Case.Company = Customer.ID
  Fields: COUNT(*) as Case Count, COUNT(Open) as Open Cases

Result: Single row per customer with aggregated metrics
        

Calculated Field Formulas

Use Case Formula Notes
Gross Margin % (amount - cost) / amount * 100 Handle divide by zero
Year-over-Year (current - prior) / prior * 100 Requires date grouping
Running Total SUM(amount) OVER (ORDER BY date) Window function
Rank RANK() OVER (PARTITION BY cat ORDER BY amt DESC) Within groups
Days Between DATEDIFF(end_date, start_date) Date arithmetic
Fiscal Period CONCAT('FY', SUBSTR(posting_period, 1, 4), '-Q', CEIL(MONTH(date)/3)) Custom periods

Advanced Formula Examples

CALCULATED FIELD EXAMPLES
═══════════════════════════════════════════════════════════════════

-- Customer Tier Based on Revenue
CASE
    WHEN {total_revenue} >= 100000 THEN 'Enterprise'
    WHEN {total_revenue} >= 50000 THEN 'Mid-Market'
    WHEN {total_revenue} >= 10000 THEN 'SMB'
    ELSE 'Starter'
END

-- Aging Bucket
CASE
    WHEN {days_overdue} <= 0 THEN 'Current'
    WHEN {days_overdue} <= 30 THEN '1-30 Days'
    WHEN {days_overdue} <= 60 THEN '31-60 Days'
    WHEN {days_overdue} <= 90 THEN '61-90 Days'
    ELSE '90+ Days'
END

-- Percentage of Total (within group)
{amount} / SUM({amount}) OVER (PARTITION BY {category}) * 100

-- Moving Average (3 periods)
AVG({amount}) OVER (
    ORDER BY {date}
    ROWS BETWEEN 2 PRECEDING AND CURRENT ROW
)

-- First Purchase Flag
CASE
    WHEN {date} = MIN({date}) OVER (PARTITION BY {customer})
    THEN 'First Order'
    ELSE 'Repeat'
END

-- Contribution Margin
{amount} - {variable_cost} - ({amount} * {commission_rate})
        

Pivot Table Techniques

PIVOT TABLE CONFIGURATION
═══════════════════════════════════════════════════════════════════

EXAMPLE: Sales by Region and Product Category

ROWS (Dimensions):
  Level 1: Region
  Level 2: Sales Rep

COLUMNS (Time/Category):
  Level 1: Fiscal Year
  Level 2: Fiscal Quarter

VALUES (Measures):
  Revenue: SUM(Amount)
  Margin: SUM(Amount - Cost)
  Margin %: (SUM(Amount) - SUM(Cost)) / SUM(Amount)
  Order Count: COUNT(DISTINCT Transaction ID)

Result Layout:
+--------------------+------+------+------+------+------+------+
|                    |   FY2024                |   FY2025       |
|                    |  Q1  |  Q2  |  Q3  |  Q4  |  Q1  |  Q2  |
+--------------------+------+------+------+------+------+------+
| West Region        |      |      |      |      |      |      |
|   John Smith       | 125K | 142K | 138K | 165K | 155K | 172K |
|   Jane Doe         |  98K | 105K | 112K | 128K | 135K | 141K |
| East Region        |      |      |      |      |      |      |
|   Bob Wilson       | 145K | 158K | 162K | 175K | 168K | 182K |
|   ...              |      |      |      |      |      |      |
+--------------------+------+------+------+------+------+------+
| Grand Total        | 856K | 924K | 967K |1.2M  |1.1M  |1.3M  |
+--------------------+------+------+------+------+------+------+

PIVOT OPTIONS:
  Show row totals
  Show column totals
  Show % of total
  Conditional formatting (heat map)
        

Chart Types and Best Practices

Chart Type Best For Avoid When
Bar Chart Comparing categories, rankings >12 categories, time series
Line Chart Trends over time, continuous data Categorical comparisons
Pie/Donut Part-to-whole (2-5 segments) >5 segments, comparing sizes
Stacked Bar Composition over categories Comparing individual segments
Area Chart Cumulative values, volume Precise value comparison
Scatter Plot Correlation, distribution Few data points, categories
KPI Tile Single critical metric Multiple related metrics

Workbook Performance Optimization

PERFORMANCE CHECKLIST
═══════════════════════════════════════════════════════════════════

□ LIMIT DATE RANGE
  - Default to 90 days or current quarter
  - Provide date filter for users to expand

□ FILTER RECORD TYPES
  - Only include needed transaction types
  - Use Main Line = false for line details

□ SELECT ONLY NEEDED FIELDS
  - Don't add fields "just in case"
  - Each field increases query size

□ USE CRITERIA vs FILTERS
  - Criteria: Applied at data load (faster)
  - Filters: Applied at render (flexible but slower)

□ LIMIT LINKED DATASETS
  - Each link = additional query
  - Pre-aggregate where possible

□ OPTIMIZE CALCULATED FIELDS
  - Simple math > complex CASE statements
  - Avoid nested window functions

□ TEST WITH PRODUCTION DATA VOLUMES
  - Sandbox may have less data
  - Test with 100K+ rows

TYPICAL PERFORMANCE TARGETS:
  < 5 seconds: Excellent
  5-15 seconds: Acceptable
  15-30 seconds: Needs optimization
  > 30 seconds: Redesign required
        

Common Workbook Patterns

Executive Summary Workbook

WORKBOOK: Executive KPI Dashboard
═══════════════════════════════════════════════════════════════════

Page 1: Financial Overview
+-------------------------------------------------------------+
|  [Revenue YTD]   [Margin %]   [Cash Balance]   [A/R Days]    |
|    $4.2M          42.3%         $1.8M            38           |
|    up 12% YoY     up 2.1pts     up $200K         down 3 days |
+-------------------------------------------------------------+
| [Revenue Trend - Line Chart]      [Revenue by Segment - Pie] |
| 12-month trend with forecast      Top 5 + Other              |
+-------------------------------------------------------------+
| [Top 10 Customers - Bar]          [Regional Performance]     |
| YTD revenue + vs prior year       Heat map by region/month   |
+-------------------------------------------------------------+

Page 2: Operational Metrics
  - Order fulfillment rate
  - Inventory turnover
  - Customer acquisition cost
  - Support ticket resolution

Page 3: Drill-Down Tables
  - Customer detail with filters
  - Product performance
  - Regional breakdown
        
🎯 Consultant Insight
The most successful workbooks start with business questions, not data. Before building, ask stakeholders: "What decisions will this help you make?" Then work backwards to identify the exact metrics needed. Resist the urge to include every available field—complexity kills adoption.

Linked Datasets

Connect multiple datasets to create comprehensive analytical views.

Join Type Result Use Case
Inner Join Only matching records Transactions with customers
Left Join All left + matching right All customers with orders (if any)
Full Outer All records from both Data reconciliation

Drill Paths

Configure drill-down navigation for interactive analysis:

DRILL PATH EXAMPLE: Total Sales → By Region → By Customer → By Transaction Level 1: Total Sales = $10M ↓ Click to drill Level 2: East = $4M, West = $3M, Central = $3M ↓ Click "East" Level 3: Customer A = $1.5M, Customer B = $1.2M... ↓ Click "Customer A" Level 4: Invoice details...

Conditional Formatting

Format Type Application Example
Color Scale Heat map visualization Red-yellow-green for performance
Data Bars In-cell bar charts Visual size comparison
Threshold Highlight exceptions Red when overdue > 30 days

Workbook Best Practices

Workbook Implementation Checklist

Chapter 9.9

Dashboard Design

Design effective dashboards with KPI portlets, charts, and role-based views.

Dashboard Components

Home Set Preferences Home Dashboard
Component Description Best For
KPI Scorecards Key metrics with trends Executive overview
Search Portlets Saved search results Lists and details
Charts Visual data display Trends and comparisons
Quick Links Navigation shortcuts Task acceleration
Reminders Action items and alerts Task management

Role-Based Dashboards

Role Key Portlets
CEO/Executive Revenue KPIs, cash position, key ratios, alerts
CFO/Controller Financial snapshots, AR/AP aging, budget variance
Sales Manager Pipeline, quota attainment, top deals, activity
Operations Order status, fulfillment metrics, inventory alerts
Purchasing Open POs, vendor performance, reorder alerts
⚖️ Key Decision

Dashboard Design Approach

Dashboard Design Principles

THE DASHBOARD HIERARCHY OF NEEDS
═══════════════════════════════════════════════════════════════════

Level 4: ACTIONABLE      "I know what to do next"
                          Alerts, thresholds, drill-downs

Level 3: CONTEXTUAL      "I understand the 'so what?'"
                          Trends, comparisons, targets

Level 2: INFORMATIVE     "I see the current state"
                          KPIs, metrics, status

Level 1: ACCESSIBLE      "I can find the data"
                          Navigation, search, shortcuts

Most dashboards fail at Level 4. Users see data but don't
know what action to take. Every metric should answer:
"If this changes, what should I do?"
        
  • Less is more: 5-7 key metrics per dashboard
  • Above the fold: Most important data visible without scrolling
  • Consistent layout: Group related metrics together
  • Clear labels: Titles that explain what users are seeing
  • Actionable: Link to transactions and drill-downs

Role-Based Dashboard Templates

Executive Dashboard

ROLE: CEO / CFO / Executive
PURPOSE: Strategic overview, exception-based management
REFRESH: Daily (morning)
═══════════════════════════════════════════════════════════════════

LAYOUT:
┌────────────────────────────────────────────────────────────────┐
│ ROW 1: KPI TILES (Critical Metrics)                            │
│ [Revenue MTD] [Margin %] [Cash Position] [Pipeline Value]      │
├────────────────────────────────────────────────────────────────┤
│ ROW 2: TRENDS & COMPARISON                                    │
│ [Revenue vs Plan - Line] [Revenue by Segment - Pie]            │
├────────────────────────────────────────────────────────────────┤
│ ROW 3: EXCEPTIONS & ACTIONS                                   │
│ [Deals Requiring Attention] [Upcoming Commitments]             │
└────────────────────────────────────────────────────────────────┘
        

Sales Manager Dashboard

ROLE: Sales Manager
PURPOSE: Team performance, pipeline management
REFRESH: Real-time
═══════════════════════════════════════════════════════════════════

LAYOUT:
┌────────────────────────────────────────────────────────────────┐
│ ROW 1: [Quota Attainment by Rep - Bar] [Pipeline by Stage]     │
├────────────────────────────────────────────────────────────────┤
│ ROW 2: [Activities This Week] [Win Rate Trend - Line]          │
├────────────────────────────────────────────────────────────────┤
│ ROW 3: [Opportunities Closing This Month - Table]              │
├────────────────────────────────────────────────────────────────┤
│ ROW 4: [Create Lead] [Create Opp] [Pipeline Report] [Forecast]│
└────────────────────────────────────────────────────────────────┘
        

Operations Manager Dashboard

ROLE: Operations / Fulfillment Manager
PURPOSE: Order status, inventory alerts, shipment tracking
REFRESH: Real-time
═══════════════════════════════════════════════════════════════════

LAYOUT:
┌────────────────────────────────────────────────────────────────┐
│ ROW 1: [Orders to Ship] [Pending Approval] [Backorders] [Late]│
├────────────────────────────────────────────────────────────────┤
│ ROW 2: [Orders Pending Fulfillment - Sortable Table]           │
├────────────────────────────────────────────────────────────────┤
│ ROW 3: [Below Reorder Point] [Inbound Shipments Expected]      │
├────────────────────────────────────────────────────────────────┤
│ ROW 4: [Order Cycle Time - Trend] [Fill Rate - Gauge]          │
└────────────────────────────────────────────────────────────────┘
        

Accounting Team Dashboard

ROLE: Controller / Accounting Manager
PURPOSE: Period close status, reconciliation, compliance
REFRESH: Daily
═══════════════════════════════════════════════════════════════════

LAYOUT:
┌────────────────────────────────────────────────────────────────┐
│ ROW 1: [Unposted JEs] [A/R Unapplied] [A/P Unapplied] [Bank]│
├────────────────────────────────────────────────────────────────┤
│ ROW 2: [Month-End Close Tasks Checklist]                       │
├────────────────────────────────────────────────────────────────┤
│ ROW 3: [Cash Flow Forecast] [A/R Aging Summary - Stacked Bar] │
├────────────────────────────────────────────────────────────────┤
│ ROW 4: [Pending My Approval - Journal Entries, Vendor Bills]   │
└────────────────────────────────────────────────────────────────┘
        

Portlet Types Reference

Portlet Type Use Case Configuration Tips
Key Performance Indicators Big number metrics with trend Limit to 4-6 KPIs; show variance
Saved Search (List) Tabular data, action lists Limit rows; add inline edit if possible
Saved Search (Chart) Visual trends, comparisons Choose chart type carefully; less is more
Reminders Upcoming tasks, follow-ups Customize reminder types per role
Quick Search Navigation shortcut Position prominently for data entry roles
Shortcuts Frequently used transactions Limit to 5-8 most common actions
Analytics (Workbook) Self-service drill-down Embed focused workbook views
Custom Portlet (SuiteScript) Custom UI/logic Use for complex conditional display

Dashboard Layout Guidelines

LAYOUT BEST PRACTICES
═══════════════════════════════════════════════════════════════════

1. VISUAL HIERARCHY
   TOP:    Most critical metrics (KPIs, alerts)
   MIDDLE: Supporting context (trends, breakdowns)
   BOTTOM: Detail data (tables, lists)

2. COLUMN USAGE
   1 column: Mobile/narrow views
   2 columns: Most common, balanced layout
   3 columns: Information-dense for wide screens

3. PORTLET SIZING
   Small: KPI tiles, shortcuts
   Medium: Charts, short lists
   Large: Data tables, calendars

4. WHITESPACE
   Don't fill every pixel
   Group related portlets
   Separate logical sections

5. REFRESH RATES
   Real-time: Operational dashboards
   Cached: Executive summaries
   Manual: Heavy analytics

6. ANTI-PATTERNS TO AVOID:
   x Too many portlets (>12)
   x Duplicate information in multiple portlets
   x Charts without context (no targets, no comparisons)
   x Scroll-heavy layouts
   x Data without action path
        

Publishing & Permissions

Customization Centers and Tabs Set Up Dashboard
DASHBOARD PUBLISHING OPTIONS
═══════════════════════════════════════════════════════════════════

1. ROLE-BASED ASSIGNMENT
   Path: Customization > Centers & Tabs > Set Up Dashboard

   Options:
   - Set as default dashboard for role
   - Allow users to modify personal copy
   - Lock dashboard (no modifications)

2. CENTER TAB PLACEMENT
   Path: Customization > Centers & Tabs > Center Tabs

   Position dashboard as:
   - Home (first tab, default landing)
   - Additional center tab
   - Subtab within existing center

3. PUBLISHED DASHBOARDS
   Path: Customization > Publishing > Published Dashboards

   Create dashboard templates that:
   - Users can subscribe to
   - Automatically update when published
   - Maintain consistent reporting

4. PERMISSION CONSIDERATIONS
   - User can view underlying saved searches
   - User has access to record types displayed
   - Subsidiary restrictions apply
   - Role restrictions apply

TESTING CHECKLIST:
   - Test with intended role (not Administrator)
   - Verify data filters correctly by user
   - Check load time with production data
   - Confirm drill-downs work
   - Validate mobile rendering (if needed)
        
🎯 Consultant Insight
The best dashboards are boring—in a good way. They show expected information in expected places. Resist the urge to add visual flair. Focus on consistency: same metrics appear in same positions, same color meanings across charts, same drill-down patterns. Users should spend zero cognitive effort figuring out where to look.

Dashboard Setup Checklist