Saved Search Answers
Short answers to specific saved search questions: what a formula error message means, why a formula column comes back as text instead of a number, why the Count summary disagrees with the number of rows, and which results are wrong without anything erroring at all. Every page traces to a probe run against one NetSuite 2026.1 sandbox account on the Administrator role, either as an ad hoc search through the SuiteScript search engine or read directly out of the saved search form. Where a finding rests on a narrow test, or was left half-established, the page says so.
The probes were driven from MokuBot, the NetSuite agent we build, which runs inside an authenticated NetSuite tab and is the only reason this many variants could be built, run and re-run in an afternoon. What they found are properties of saved search, not of the tool that sent them.
Formulas that fail without erroring
Why does my saved search formula column say "ERROR: Field Not Found" instead of a value?
Because the search succeeded. A field token in a Results formula did not resolve, and NetSuite writes the literal 22-character string "ERROR: Field Not Found" into the column as its value on every row. It is data, not an exception, it appears in Formula(Numeric) columns, it survives SUM, and NVL does not protect it.
What does INVALID_FORMULA_FIELD, "Your formula has an unrecognized field in it", mean in a saved search?
It means a field token in your Criteria formula did not resolve, so NetSuite refused the search before running it. The Criteria side validates field names; the Results side does not, and the same typo there returns no error at all. Fix the token in braces, not the logic.
Why does {entity.internalid} not work in a NetSuite saved search formula?
Because the token is {entity.id}. In a formula, internalid is not a resolvable name, and the failure is silent: the column fills with the literal string ERROR: Field Not Found on every row and the search reports success. One join level works with .id; two levels did not resolve in this run.
Why does {type} return "Opportunity" but {type.id} returns "Opprtnty"?
Because {field} gives the display name and {field.id} gives the internal code. They are two different strings for the same value. {field.name} does not exist and fails silently. Note the trap: SuiteQL returns the code by default where a saved search formula returns the label, so literals copied between the two engines match nothing.
Does wrapping a saved search formula in NVL fix the null rows in a CASE WHEN?
No. Both versions were run and grouped, and the output was identical in every bucket, to the row. NVL turns null into 0, and 0 still fails > 0, so the row lands in the same ELSE. NVL only helps if the formula branches on the substituted value, as a first WHEN.
What the formula type does to your number
Why is my Formula (Percent) column showing a number 100 times too big?
Because Formula (Percent) multiplies by 100 itself and appends a literal % sign. If your expression already computes a percentage, the column reports a hundred times the real figure with a plausible % on the end. Feed Percent the ratio and drop the *100.
Why does my Formula (Numeric) column return 39 decimal places?
Because Formula (Numeric) does not round at all. It hands back the raw Oracle NUMBER, which is what reaches your CSV export or SuiteScript variable, so 1/3 comes back with 39 decimal places. Formula (Currency) is not the fix: it rounded to 3 dp on some values and 2 on another. Use ROUND(x,2) in the expression.
Counting rows and summary types
Why does the Count summary in my NetSuite saved search return fewer than the number of rows?
Because Count is COUNT(DISTINCT), not a row count. It counts how many different values a column produces, so Count of {internalid} on a transaction search reports distinct transactions while the search returned lines. A Formula(Numeric) column of 1 summarised as Sum is the row count.
How do I count the number of rows a NetSuite saved search returns?
Add a Formula(Numeric) results column whose formula is the literal 1 and set its Summary to Sum. That total is the row count. Count does not give you one: it is COUNT(DISTINCT), so Count of {internalid} returns distinct transactions and Count of a constant returns 1.
What does "An nlobjSearchColumn contains an invalid column summary type" mean on a formula column?
You put Sum or Average on a Formula(Text) column. The message names the pair that failed, as in "formulatext: SUM.", under code SSS_INVALID_SRCH_COLUMN_SUM. Change the column to Formula(Numeric) or change the summary. Minimum and Maximum on a text formula are accepted and return a lexicographic result.
Dates in formulas
Why does {today} - {trandate} return a decimal instead of a whole number of days?
Because {today} is a timestamp, not a date. It carries the time of day, so the subtraction leaves a fraction of a day on the end and the result is never a whole number. An equality test against a day count never matches, and a greater-than test moves during the working day. Use TRUNC({today}) - {trandate}, which returns an integer.
How do I group a saved search by month, or format a date, in a formula?
TO_CHAR({trandate},'YYYY-MM') in a Formula(Text) column gives a sortable month key and honours the format mask exactly. TRUNC({trandate},'MM') in a Formula(Date) column gives the first of the month as a real date, but it renders in the account's date format rather than ISO, so export the text version if anything downstream parses it.
Filters and criteria
Why is equalto not a valid operator on internalid in a saved search filter (SSS_INVALID_SRCH_OPERATOR)?
Because NetSuite does not accept equalto on internalid: the filter is refused with SSS_INVALID_SRCH_OPERATOR and the search returns an error instead of rows. Use anyof, which takes an array and scales to a list. is also works, on a bare string, which is the part most people do not expect.
Why does a Formula (Text) criteria on internal id match far too many rows?
Because a text formula makes every operator a string operator. Formula(Text) {internalid} contains '2' is a substring scan over the digits of the id, so it matches 2, 12, 20, 102 and everything else containing a 2. In the account tested it matched more than half the rows in the search, with no error. Use anyof, or Formula(Numeric).
Can I use a formula as an Available Filter on a saved search?
You can select one and you can never make it work. The Available Filters sublist has four columns, Filter, Show in Filter Region, Show as Multi-Select and Label, and none of them is a formula box. Criteria has a column literally labelled Formula; Available Filters does not. The search saves anyway, with no error, carrying a filter that has no expression in it.
Fields missing from the search
Why is my custom field missing from the saved search field list?
Because the field is marked Inactive. That one checkbox on the custom field record, labelled exactly "Inactive", removes it from the Criteria, Results and Available Filters dropdowns at the same time. Store Value is not the cause, whatever the forum threads say: with Store Value off the field is still listed in all three. Display Type = HIDDEN and Applies To do not remove it either.
Why is my custom field in the saved search results but blank on every row?
Because Store Value is unticked on the custom field record, so there is nothing stored for the search to return. The field stays fully usable: as a results column it runs and returns empty on every row, inside a formula the same, and as a criteria filter "is empty" matched every row in the table. Nothing errors, so the report looks structurally fine and is silently empty.
Results, export and sharing
Why does my NetSuite saved search only show 500 rows in the browser?
The results page renders a fixed 500-row window and never says so. The size URL parameter is ignored, there is no truncation warning and no pagination control, and the correct Total sits at the bottom of a page showing a fraction of it. The CSV export from the same page is complete and matched that Total exactly.
Why does the Total row in my saved search CSV export not parse as a number?
The Total row formats that column differently from the rows above it, adding a thousands separator and a trailing .0, which forces CSV quoting. A parser gets integers for the body and a string for the total, so a cast returns NaN or a value silently truncated at the separator, on the total row only, with no warning.
Why does my saved search CSV export have two columns with the same header?
NetSuite writes the column label straight into the CSV header with no disambiguating suffix, so selecting the same field twice gives you the same header twice. The fix is custom column labels: they are honoured exactly as typed, in both detail and summary exports.
How do I make a saved search public, and what is the difference between Public and the audience settings?
Tick the checkbox labelled Public on the saved search form. Internal roles and External roles control who can see it, Allow Audience to Edit controls whether they can change it, and Available for Publishing on Website is a different feature about website publication rather than internal sharing. Run Unrestricted sits next to them and decides whose permissions the search runs with.