---
title: McoPlanNodeBuilder
summary: API reference for McoPlanNodeBuilder.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-24
library: SAIF.Services
reference_type: package
---

# McoPlanNodeBuilder

Builds a `McoPlanNode` describing a claim's Managed Care Organization (MCO) plan by reading `Claim.GetMcoEligibility()` for the eligibility effective date and `Claim.Mco()` for the plan and its provider location, assembling a `ContactItem` with business/fax/toll-free phone numbers and a resolved address via `IProviderInformationService.GetProviderAddress`.

## Purpose
- Records the claim's MCO eligibility effective date from the claim's MCO eligibility update history.
- Builds the MCO plan's contact record (business name, phone/fax/toll-free numbers, resolved address) from the plan's provider location when present.
- Sets the plan's status description from the claim's MCO status reason code.

## Context
- Namespace: `SAIF.Services.Claims.Information.Api`
- Assembly/package: `SAIF.Services` (packaged inside the `SAIF.SAIFCode.Core` NuGet package)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| Node | `public McoPlanNode Node { get; }` | Exposes the node instance being populated by this builder. |
| McoPlanNodeBuilder(claim, node) | `public McoPlanNodeBuilder(Claim claim, McoPlanNode node)` | Stores the claim and target node for later population. |
| AddEligibility() | `public McoPlanNodeBuilder AddEligibility()` | Sets `EffectiveDate` to the update date of the claim's MCO eligibility record, when one exists. |
| AddMco(providerInformationService) | `public McoPlanNodeBuilder AddMco(IProviderInformationService providerInformationService)` | Sets the plan `Id` and builds a `Contact` (name, phone numbers by type, resolved address) from the MCO plan's provider location when the plan exists, and sets `Status` from the claim's MCO status reason description. |

## Behavioral notes
- Phone numbers are added conditionally and independently for business, fax, and toll-free numbers, each only when the corresponding source field is non-blank.
- The contact's `FormattedName` is initially set to the plan's short description, then overwritten with the provider's business name if a provider location is present.

## Constraints and usage notes
- `AddMco` no-ops on the `Contact`/`Id` fields entirely when the claim's MCO or MCO plan is null, though `Status` may still be set independently from the MCO status reason.

## Sources
- Services/SAIF.Services/Claims/Information/Api/McoPlanNodeBuilder.cs
