Cayaqui.MPS.ReportModels
0.4.0
dotnet add package Cayaqui.MPS.ReportModels --version 0.4.0
NuGet\Install-Package Cayaqui.MPS.ReportModels -Version 0.4.0
<PackageReference Include="Cayaqui.MPS.ReportModels" Version="0.4.0" />
<PackageVersion Include="Cayaqui.MPS.ReportModels" Version="0.4.0" />
<PackageReference Include="Cayaqui.MPS.ReportModels" />
paket add Cayaqui.MPS.ReportModels --version 0.4.0
#r "nuget: Cayaqui.MPS.ReportModels, 0.4.0"
#:package Cayaqui.MPS.ReportModels@0.4.0
#addin nuget:?package=Cayaqui.MPS.ReportModels&version=0.4.0
#tool nuget:?package=Cayaqui.MPS.ReportModels&version=0.4.0
Cayaqui.MPS.ReportModels
Zero-dependency shared DTOs, palette colours (MpsColor), and utilities for Cayaqui.MPS.ExcelExport, Cayaqui.MPS.PptExport, and Cayaqui.MPS.WordExport.
Overview
MPS.Infrastructure.ReportModels is the foundation layer for the MPS report generation ecosystem. It provides platform-agnostic types that all export packages reference, with no dependencies on Syncfusion, System.Drawing, or any other rendering library.
v0.3.5 — R9cEntry breaking change
R9cEntry fields renombrados para alinear con nomenclatura EPC owner-side:
| Campo anterior | Campo nuevo | Significado |
|---|---|---|
Ac |
Incurred |
Incurrido = Pagado + ejecutado no valorizado (ACWP) |
ToCommit |
Paid |
Pagado = facturas emitidas al cutoff |
| (nuevo) | Trends |
Variaciones de estimado internas aprobadas |
Variance |
(eliminado) | — |
PctExec siempre en escala 0..1.
Contents
ReportTheme
Branding record shared across all three export packages (ExcelExport, PptExport, WordExport). Configure once, pass via options to apply consistently across formats.
var theme = new ReportTheme
{
ReportTitle = "Monthly Project Report",
ProjectName = "Talara U3 — Expansion",
CompanyName = "Cayaqui S.A.",
PreparedBy = "Project Controls Team",
Version = "1.0",
ReportDate = new DateTime(2026, 4, 30),
ConfidentialityLabel = "CONFIDENCIAL",
PrimaryColorHex = "#0F2044", // deep navy
AccentColorHex = "#C9961A", // amber gold
TitleFont = "Calibri Light",
BodyFont = "Calibri",
TableFont = "Calibri",
NumericFont = "Roboto Condensed"
};
ReportTheme.MpsCorporateDark is the built-in preset (deep navy #0F2044 + amber gold #C9961A, "Calibri Light" titles).
| Property | Default |
|---|---|
PrimaryColorHex |
"#0F2044" |
AccentColorHex |
"#C9961A" |
TitleFont |
"Calibri Light" |
BodyFont |
"Calibri" |
TableFont |
"Calibri" |
NumericFont |
"Roboto Condensed" |
ConfidentialityLabel |
"CONFIDENCIAL" |
Version |
"1.0" |
ReportDate |
null → DateTime.Today at render time |
Consumers:
ExcelExportOptions.Theme→CoverSheetSection, per-sheet footer, tab colorPptReportOptions.Theme→ cover slide brandingWordReportOptions.Theme→ cover page branding
MpsColor
A platform-agnostic RGB colour struct. Renderers convert it to their specific colour type via extensions in each output package:
// In ExcelExport
color.ToXlsIO() // → Syncfusion.Drawing.Color
// In PptExport
color.ToPpt() // → IColor (Syncfusion Presentation)
// In WordExport
color.ToDocIO() // → Syncfusion.Drawing.Color (DocIO)
Palette
| Class | Purpose |
|---|---|
SemaforoColors |
Light EVM semáforo tones (green / amber / red / neutral) — readable with black text |
EvmChartPalette |
Canonical MPS EVM chart colours — visual parity with MPS.Components Blazor |
Visual Parity
EvmChartPalette uses the same hex values as the Blazor components in MPS.Components.Evm, ensuring charts produced by Excel/PowerPoint/Word export match the web dashboard.
| Role | Hex | Swatch |
|---|---|---|
| Plan | #2E5BFF |
Blue |
| Earned | #7F56D9 |
Purple |
| Actual | #D92D20 |
Red |
| Forecast | #039855 |
Green |
| BAC | #101828 |
Near-black |
| Cut-off | #D6D3D1 |
Light grey |
| Baseline | #44403C |
Warm dark |
| Cyan | #0086C9 |
Cyan |
| Amber | #F79D1E |
Amber |
| WaterfallTotal | #10B981 |
Bright emerald — total/opening bar |
| WaterfallSubtotal | #64748B |
Slate grey — subtotal bars |
EVM Data DTOs (MPS.Infrastructure.ReportModels.Evm)
Core EVM
| DTO | Descripción |
|---|---|
EvmKpiSnapshot |
Snapshot de KPIs en la fecha de corte (CPI, SPI, EV, AC, PV, BAC, Δ anteriores) |
EvmSCurvePoint |
Punto PV/EV/AC/Forecast para la curva S |
CashflowPoint |
Punto Plan/Actual/Forecast mensual para cashflow |
BurndownPoint |
Punto Remaining para burndown |
PhysicalProgressPoint |
Punto Baseline/Plan/Actual/Forecast % avance físico |
ProductionPoint |
Punto Plan/Actual producción (minería) |
R9cEntry |
Fila del reporte de 9 columnas AACE 80R-13 |
RiskItem + RiskView |
Riesgo con Probability/Impact para heatmap |
VarianceRow |
Fila de varianza cronograma (baseline/current/forecast) |
ContingencyPoint |
Punto Plan/Actual contingencia restante |
WaterfallStep + WaterfallStepKind |
Paso de cascada: Total, Subtotal, Add, Subtract, Pending, Forecast |
ResourceBucket |
Celda Period×Category para histograma de recursos |
ManagementReserveEvent + ManagementReserveEventKind |
Evento de reserva de gestión con monto y nota |
TornadoItem |
Ítem tornado: label + desviación Low/High |
MilestoneItem + MilestoneHealth |
Hito con fecha, salud y fecha baseline |
RiskRegisterEntry |
Entrada registro de riesgos completo (score = Probability × Impact) |
ChangeOrderEntry |
Orden de cambio con impacto costo/cronograma y estado |
ControlChartPoint |
Punto Date/SV/CV para gráfico de control EVM (Schedule Variance / Cost Variance) |
EPC / Project Controls
| DTO | Descripción |
|---|---|
WbsBudgetRow |
Fila jerárquica WBS con BAC/EV/AC/EAC/CPI y nivel de indentación |
EngProgressRow |
Fila de avance de ingeniería: Code/Title/Discipline, Plan%/Actual%, fechas Planned/Forecast |
LookaheadRow |
Fila de lookahead 3 semanas: WBSCode/Activity/Responsible, fechas inicio/fin, LookaheadStatus |
RaciEntry |
Entrada de matriz RACI: Activity + Role + RaciRole (Responsible/Accountable/Consulted/Informed) |
PoEntry |
Fila de registro de órdenes de compra: PO# / Supplier / Amount / Status / fechas |
Utils (MPS.Infrastructure.ReportModels.Utils)
| Clase | Descripción |
|---|---|
CumulativeBuilder |
Calcula acumulados Plan/Actual/Forecast a partir de puntos mensuales + CutOffDate |
EvmThresholds |
Umbrales semáforo para CPI/SPI con método Resolve(decimal?) → MpsColor |
Release Notes
0.3.4
EvmChartPalette: two new Waterfall-specific semantic constants — WaterfallTotal (#10B981, bright emerald) and WaterfallSubtotal (#64748B, slate grey). WaterfallSlide (PptExport) and WaterfallDocSection (WordExport) now reference these constants, closing the last hardcoded-color gap vs the web design system. No breaking changes.
0.3.3
5 nuevos DTOs EPC: WbsBudgetRow, EngProgressRow, LookaheadRow, RaciEntry (+ RaciRole enum), PoEntry. Nuevo DTO de control EVM: ControlChartPoint (Date/SV/CV). LookaheadStatus enum (Planned/InProgress/Complete/Delayed). Requerido por WordExport ≥ 0.1.3, ExcelExport ≥ 0.7.3, PptExport ≥ 0.3.3.
0.2.0
8 nuevos DTOs Fase 2: ContingencyPoint, WaterfallStep+WaterfallStepKind, ResourceBucket, ManagementReserveEvent+ManagementReserveEventKind, TornadoItem, MilestoneItem+MilestoneHealth, RiskRegisterEntry, ChangeOrderEntry. Paridad completa con Cayaqui.MPS.ExcelExport v0.6.0 y Cayaqui.MPS.PptExport v0.2.0.
0.1.0
Initial release: MpsColor, SemaforoColors, EvmChartPalette.
Proprietary — requires a commercial agreement with Cayaqui.
For licensing inquiries: licensing@cayaqui.com
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Cayaqui.MPS.ReportModels:
| Package | Downloads |
|---|---|
|
Cayaqui.MPS.ExcelExport
Exports strongly-typed collections of DTOs to .xlsx using the attributes from Cayaqui.MPS.Metadata: Label for headers, Currency/Percentage/Date for cell formats, Align/ColumnWidth for layout, VisibleIn/Hidden for visibility, Order for column order, Badge for cell background color. Uses Syncfusion XlsIO. Proprietary — requires a commercial agreement with Cayaqui. |
|
|
Cayaqui.MPS.PptExport
Programmatic PowerPoint slide sections for EVM reporting. Each IPptSlideSection adds a slide to a Syncfusion.Presentation IPresentation. Pairs with Cayaqui.MPS.ExcelExport and Cayaqui.MPS.ReportModels. |
|
|
Cayaqui.MPS.WordExport
Programmatic Word document sections for EVM reporting. Each IWordDocSection adds a section to a Syncfusion.DocIO WordDocument. Pairs with Cayaqui.MPS.PptExport, Cayaqui.MPS.ExcelExport, and Cayaqui.MPS.ReportModels. |
GitHub repositories
This package is not used by any popular GitHub repositories.
0.4.0 — EvmKpiSnapshot: new CpiHistory + SpiHistory properties (IReadOnlyList<decimal>?). EvmSCurvePoint: new optional Baseline + partial-period params (PvPartial/EvPartial/AcPartial/ForecastPartial) for mixed bar+line charts. PackageReadme: ReportTheme documentation added. Additive — no breaking changes.
0.3.5 — R9cEntry: breaking change — Ac→Incurred, ToCommit→Paid, nuevo Trends, eliminado Variance. PctExec escala 0..1. 0.3.4 — EvmChartPalette: add WaterfallTotal (#10B981, bright emerald) and WaterfallSubtotal (#64748B, slate grey) semantic constants. Waterfall sections in PptExport and WordExport now reference these instead of hardcoded hex values — full color parity with web design system.
0.3.3 — 6 new EVM DTOs: WbsBudgetRow, EngProgressRow, LookaheadRow+LookaheadStatus, ControlChartPoint, RaciEntry+RaciRole, PoEntry.
0.3.2 — Fix: MPS.Licensing.dll incluido en lib/net10.0/ del .nupkg (faltaba en 0.3.0/0.3.1 → 502.5 en IIS).
0.3.1 — Fix: re-publicación de 0.3.0 con binarios correctos. Sin diferencia de API.
0.3.0 — Licensing: MpsReportModels.RegisterLicense(licenseKey) + LicenseState property. ReportModelsLicenseState disponible en DI. Sin breaking changes.
0.2.0 — 8 nuevos DTOs Fase 2: ContingencyPoint, WaterfallStep+WaterfallStepKind, ResourceBucket, ManagementReserveEvent+ManagementReserveEventKind, TornadoItem, MilestoneItem+MilestoneHealth, RiskRegisterEntry, ChangeOrderEntry. Paridad con ExcelExport v0.6.0 y PptExport v0.2.0. 0.1.0 — Initial release: MpsColor, SemaforoColors, EvmChartPalette.