---
title: SAIF.Business.Utilities operations and processes
summary: Operation catalog and cross-operation hub for the SAIF.Business.Utilities text-formatting library.
status: draft
owner: <owner>
last_reviewed: 2026-07-30
library: SAIF.Business.Utilities
reference_type: package
---

# SAIF.Business.Utilities operations and processes

This page is the operation catalog and cross-operation hub for `SAIF.Business.Utilities`. The library provides stateless string- and number-formatting helpers — a domain-specific title-casing algorithm, an English-words numeric conversion, and a set of smaller case-conversion utilities — consumed by other SAIF.BOF components for consistent text formatting of names, addresses, and monetary amounts. Each operation's detailed, step-by-step logic lives in its own page under `operations/`.

## Operation catalog

| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
| --- | --- | --- | --- | --- | --- | --- | --- |
| [Title-case a string](operations/title-case-a-string.md) | Convert free text to title case with domain-specific abbreviation, prefix, suffix, and numeric-ordinal handling | Caller calls `TitleCase.ToTitleCase` or the `String.ToTitleCase()` extension | `inString As String` | Title-cased `String` | [BR-001](business-rules.md#br-001-fixed-case-rendering-of-configured-abbreviations), [BR-003](business-rules.md#br-003-already-mixed-case-words-bypass-title-casing), [BR-004](business-rules.md#br-004-numeric-ordinal-words-bypass-word-list-casing), [BR-005](business-rules.md#br-005-configured-possessive-suffixes-are-forced-to-fixed-casing) | — | — |
| [Numeric-to-text conversion](operations/numeric-to-text-conversion.md) | Convert an integer amount into its English-words representation | Caller calls `mdlTextConversion.NumberToText` | `n As Long` | `String` (words) | [BR-002](business-rules.md#br-002-numeric-conversion-upper-bound) | — | — |
| [Text and array case-conversion utilities](operations/text-and-array-case-conversion-utilities.md) | Provide proper-casing, capital-letter padding, array-level case conversion, numeric-only checks, and sentence-casing helpers | Caller calls `ToProperCase`, `ToPadCapitalLetters`, `ToLower`/`ToUpper` (array), `ContainsOnlyNumericCharacters`, or `ToSentenceCase` | `String` or `String()` input | Transformed `String`, `String()`, or `Boolean` | [BR-006](business-rules.md#br-006-capital-letter-padding-is-skipped-when-input-already-contains-a-space) | — | — |

## Process flow diagram

The following diagram shows how a caller selects one of the three operations; each operation is an independent, stateless transformation with no shared state or sequencing between them.

```mermaid
flowchart TD
	Start([Caller has a string or number<br>to format]) --> Select{Which operation?}
	Select -->|Domain-specific title casing| Title[Title-case a string]
	Select -->|Numeric amount to words| Numeric[Numeric-to-text conversion]
	Select -->|Proper-case, padding, array<br>casing, numeric check, sentence case| Utils[Text and array<br>case-conversion utilities]
	Title --> Done([Return transformed value])
	Numeric --> Done
	Utils --> Done
```

## Failure and edge-case behavior
- `Title-case a string` returns empty/`Nothing` input unchanged and never raises an exception on its own.
- `Numeric-to-text conversion` throws `ApplicationException` when `n` exceeds `999,999,999,999,999`. ([BR-002](business-rules.md#br-002-numeric-conversion-upper-bound))
- `Text and array case-conversion utilities` includes one function, `ToPadCapitalLetters`, that delegates to an external `PadCapitalLettersFormat` type not defined in this library; its behavior beyond the space-check short-circuit could not be verified from this library's own source.**
- None of the three operations share state, a lifecycle, or an execution order — each is a stateless, independently callable transformation.

> **Note:** Statements marked with `**` could not be confirmed; treat as unknown
> until verified.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Business rules](business-rules.md)
- [API reference](api/index.md)

## Sources
- `Business\SAIF.Business.Utilities\TitleCase.vb`
- `Business\SAIF.Business.Utilities\mdlTextConversion.vb`
