All articles

June 24, 2026 · Articles

HTML Templates: Formatting Dates and Dollar Amounts


This is part three of our four-part series on HTML email templates in BigWave:

  1. What they are and why they matter
  2. The complete field-code cheat sheet
  3. Formatting dates and dollar amounts (you’re reading it)
  4. Alerts and everything else

In part two you dropped field codes into a template and let BigWave fill in the values. This post is about controlling how those values read once they’re filled in — so a total lands as $1,250.00 instead of 1250.00, and a date reads July 1, 2026 instead of a full timestamp.

Formatting field values

Every code drops in whatever value BigWave has on file, using a sensible default: a dollar amount comes out as 1250.00, a date comes out as the full 07/01/2026 02:30 PM (CST). Often that’s exactly what you want. When it isn’t, you can tell a code how to format itself by adding a format instruction after a vertical bar (|) inside the brackets:

[TotalSummary.TotalPricePlusTax|currency]   →   $1,250.00
[WO.ScheduledStartDateSite|date]            →   07/01/2026

Why and how this works

When BigWave fills a code, it looks at the type of the underlying value — is it a date, a number, or plain text? The instruction after the | is then applied to match:

  • Dates accept the friendly aliases date, time, and datetime, or any standard .NET date format string (like MMMM d, yyyy).
  • Numbers accept the friendly aliases currency, money, number, and percent, or any standard .NET numeric format string (like N0 or 0.00).

The aliases are just shorthand for the most common formats; underneath, BigWave hands your instruction to the same C# formatting library a developer would use, so anything that library understands works here too.

If the instruction doesn’t fit the value — a number alias on a date, a format on a plain-text field, or a format string that isn’t valid — BigWave can’t honor it, so it leaves the whole tag visible in the email (e.g. [WO.WOID|date]). That’s the same signal as a misspelled code: if you see brackets in the preview, something’s off. Always preview against a real work order so a stray tag never reaches a customer.

Date formatting

Using a scheduled date of Wednesday, July 1, 2026, 2:30 PM:

Field codeWhat it becomes
[WO.ScheduledStartDateSite]07/01/2026 02:30 PM (CST) (default — full date and time)
[WO.ScheduledStartDateSite|date]07/01/2026
[WO.ScheduledStartDateSite|time]02:30 PM (CST)
[WO.ScheduledStartDateSite|datetime]07/01/2026 02:30 PM (CST)
[WO.ScheduledStartDateSite|MMMM d, yyyy]July 1, 2026
[WO.ScheduledStartDateSite|ddd MMM d]Wed Jul 1
[WO.ScheduledStartDateSite|yyyy-MM-dd]2026-07-01
[WO.ScheduledStartDateSite|currency][WO.ScheduledStartDateSite|currency] — ❌ a number alias can’t be applied to a date, so the tag prints as-is

Number formatting

Using a total of 1250 and work order number 14695:

Field codeWhat it becomes
[TotalSummary.TotalPricePlusTax]1250.00 (default — two decimals, no symbol)
[TotalSummary.TotalPricePlusTax|currency]$1,250.00
[TotalSummary.TotalPricePlusTax|money]$1,250.00 (alias of currency)
[TotalSummary.TotalPricePlusTax|number]1,250.00
[TotalSummary.TotalPricePlusTax|N0]1,250
[TotalSummary.TotalPricePlusTax|C0]$1,250
[WO.WOID|000000]014695 (zero-padded to six digits)
[TotalSummary.TotalPricePlusTax|date][TotalSummary.TotalPricePlusTax|date] — ❌ a date alias can’t be applied to a number, so the tag prints as-is

The percent alias multiplies by 100. It’s meant for rate fields — a stored rate of 0.0725 formats as 7.3%. Point it at a dollar amount like the total above and you’ll get 125,000.0%, which is almost never what you want.

When formatting doesn’t take — and the fix

A format instruction only works on a date or a number. Point one at anything else and BigWave leaves the tag untouched:

Field codeWhat happensWhy
[TotalSummary.TotalPricePlusTaxString|currency]Prints literally as [TotalSummary.TotalPricePlusTaxString|currency]The …String totals are already formatted text, not numbers — there’s nothing left to format.
[BillingAddress.AddressName|number]Prints literally as [BillingAddress.AddressName|number]A name is plain text; number formats don’t apply.
[TotalSummary.TotalPricePlusTax|Z]Prints literally as [TotalSummary.TotalPricePlusTax|Z]Z isn’t a valid .NET format string.
[DateCompleted|date] (no completion date yet)(the field’s normal empty display)An empty date keeps its default display; the format is simply ignored.

The most common gotcha is that first row. Notice the totals in the cheat sheet end in String ([TotalSummary.TotalPricePlusTaxString]) — those come pre-formatted as currency text, which is why they don’t take a format instruction. To format a total yourself, use the numeric version without the String suffix[TotalSummary.TotalPricePlusTax|currency] instead of [TotalSummary.TotalPricePlusTaxString].

A quick reference from the C# format library

Any format string the .NET library understands works after the |. The handful you’ll reach for most:

InstructionOn the sample valueResult
C / C0 / C21250$1,250.00 / $1,250 / $1,250.00
N / N0 / N212501,250.00 / 1,250 / 1,250.00
F0 / F212501250 / 1250.00 (no thousands separator)
P0 / P10.07257% / 7.3%
0.00 / #,##0 / 00000012501250.00 / 1,250 / 001250
MM/dd/yyyyJul 1, 202607/01/2026
MMMM d, yyyyJul 1, 2026July 1, 2026
ddd / ddddJul 1, 2026Wed / Wednesday
h:mm tt2:30 PM2:30 PM

In a custom pattern, a 0 is a required digit (padding with zeros) and a # is an optional one (dropped when not needed) — which is exactly how [WO.WOID|000000] pads 14695 out to 014695.

These formatting rules apply to every email BigWave sends, not just invoices — the same |currency and |date instructions work on the alert and reminder codes in part four.

Next: HTML templates for alerts and everything else →

Try BigWave free for 30 days

Streamline national service centers and help desks, manage assets, eliminate status meetings, and deliver reliably with less.