ReportBuilder

Builder for assembling a ReportNode tree using a Kotlin DSL.

Each method corresponds to one ReportNode leaf type and appends a node to the current builder's child list. The section method creates a nested ReportBuilder, applies the user's block, and wraps the result in a ReportNode.Section.

Users never instantiate this class directly — use the top-level report function:

val doc = report("My Report") {
heading("Summary", level = 2)
statTable(myStats, confidenceLevel = 0.90)
section("Details") {
histogram(myHistogram)
plot(myPlot, caption = "Distribution")
}
}

KSL-provided extension functions on ReportBuilder (e.g., histogram(), multipleComparison(), simulationResults()) add domain-specific content by calling the primitive methods below, keeping this class small and stable.

All mutable state uses the my prefix per KSL coding conventions.

Functions

Link copied to clipboard
fun ReportBuilder.allGoodnessOfFit(results: PDFModelingResults, modeler: PDFModeler, caption: String? = null, confidenceLevel: Double = 0.95)

Appends a self-contained section containing a goodnessOfFit sub-section for every distribution in results, sorted by overall MODA value (best first).

Link copied to clipboard
fun ReportBuilder.batchStatistic(bs: BatchStatistic, caption: String? = null, confidenceLevel: Double = 0.95)
Link copied to clipboard
fun ReportBuilder.bootstrap(bs: Bootstrap, caption: String? = null, confidenceLevel: Double = 0.95, showDensityPlot: Boolean = false)

Appends a self-contained section that first reports the Bootstrap configuration and then delegates to bootstrapEstimate for the statistical results.

Link copied to clipboard
fun ReportBuilder.bootstrapEstimate(be: BootstrapEstimateIfc, caption: String? = null, confidenceLevel: Double = 0.95, showDensityPlot: Boolean = false)

Appends a self-contained section reporting the results of a single BootstrapEstimateIfc. No configuration metadata (estimator, stream, antithetic) is emitted here; use bootstrap for Bootstrap instances that require configuration.

Link copied to clipboard
fun ReportBuilder.bootstrapEstimates(estimates: List<BootstrapEstimateIfc>, caption: String? = null, confidenceLevel: Double = 0.95, showDetail: Boolean = false, showDensityPlot: Boolean = false)
Link copied to clipboard

Appends the family-frequency bootstrap result (continuous; no-op when absent) — how often each family was the recommended fit across bootstrap resamples. This is a separate, opt-in analysis, so the section appears only when present.

Link copied to clipboard

Appends the bootstrap parameter summaries for one fit (no-op when absent).

Link copied to clipboard
fun ReportBuilder.controlsReport(export: ModelControlsExport, groupByElement: Boolean = false, includeAllowedValues: Boolean = true, jsonValueWidth: Int = 60, includeComment: Boolean = true)

Appends a full controls report section for export.

Link copied to clipboard

Appends the cross-dataset summary: one row per dataset giving the recommended family, the recommended fit's parameters, and the kind-appropriate quality statistic (MODA weighted value for continuous, chi-squared p-value for discrete), plus a failures table when any entry failed. This is the single new report the batch path contributes; all per-dataset content reuses the DTO-driven sections.

Link copied to clipboard
fun ReportBuilder.dataStatisticalSummary(data: PDFData, caption: String? = null, confidenceLevel: Double = 0.95, showOutlierValues: Boolean = false)

Appends a self-contained section summarising the characteristics of the raw data held by data, with no plots.

Link copied to clipboard

Appends the data statistical summary as a Property/Value table.

Link copied to clipboard
fun dataTable(headers: List<String>, rows: List<List<String>>, caption: String? = null)

Appends a ReportNode.DataTable for pre-formatted string data.

Link copied to clipboard
fun ReportBuilder.dataVisualization(data: PDFData, caption: String? = null)

Appends a self-contained section containing four exploratory plots for the data held by data.

Link copied to clipboard

Appends a "Experiment Configuration" data table derived from ExperimentTableData and a derived replication count.

Link copied to clipboard
fun ReportBuilder.dbHistogram(responseName: String, binRows: List<HistogramTableData>, caption: String? = null, showPlot: Boolean = true)

Appends a single histogram sub-section for one response from the database.

fun ReportBuilder.dbHistogram(db: KSLDatabase, expName: String, responseName: String, showPlot: Boolean = true)

Appends a single histogram section for one in-simulation ksl.modeling.variable.HistogramResponse, fetched from the database by name.

Link copied to clipboard
fun ReportBuilder.dbIntegerFrequency(freqName: String, cellRows: List<FrequencyTableData>, caption: String? = null, showPlot: Boolean = true)

Appends a single integer-frequency sub-section for one response from the database.

fun ReportBuilder.dbIntegerFrequency(db: KSLDatabase, expName: String, name: String, showPlot: Boolean = true)

Appends a single integer-frequency section for one in-simulation ksl.modeling.variable.IntegerFrequencyResponse, fetched from the database by name.

Link copied to clipboard
fun ReportBuilder.dbResponseHistogram(db: KSLDatabase, expName: String, responseName: String, confidenceLevel: Double = 0.95, showPlot: Boolean = true)

Appends a "Histogram — responseName" section containing an across-replication statistics table for responseName and (when showPlot is true) a HistogramPlot built from the per-replication observations.

Link copied to clipboard
fun ReportBuilder.dbResponseNormality(db: KSLDatabase, expName: String, responseName: String)

Appends a "Normality — responseName" section containing a normal Q-Q plot and a normal P-P plot of the per-replication values, referenced against a Normal distribution fitted by moment matching (sample mean and variance).

Link copied to clipboard

Appends an "Observations — responseName" section containing an ObservationsPlot of the per-replication values in replication order — useful for spotting run-to-run trends or outliers that a histogram hides.

Link copied to clipboard
fun ReportBuilder.dbSimulationFrequencies(db: KSLDatabase, expName: String, showPlot: Boolean = true)

Appends a "Frequencies" section for the named experiment.

Link copied to clipboard
fun ReportBuilder.dbSimulationHistograms(db: KSLDatabase, expName: String, showPlot: Boolean = true)

Appends a "Histograms" section for the named experiment.

Link copied to clipboard
fun ReportBuilder.dbSimulationResults(db: KSLDatabase, expName: String, confidenceLevel: Double = 0.95, showPlots: Boolean = true)

Appends a complete set of sections for the named experiment in the following order:

Link copied to clipboard
fun ReportBuilder.dbSimulationSummary(db: KSLDatabase, expName: String, confidenceLevel: Double = 0.95)

Appends a "Simulation Summary" section for the named experiment, containing:

Link copied to clipboard
fun ReportBuilder.dbTimeSeriesAcrossReplication(db: KSLDatabase, expName: String, responseName: String, confidenceLevel: Double = 0.95, showPlot: Boolean = true)

Appends a "Time Series Across Replications — responseName" section containing a per-period statistics table (Period, Start, End, Count, Mean, Std Dev, Half Width, CI Lower, CI Upper, Min, Max) and a plot of the mean trajectory.

Link copied to clipboard
fun ReportBuilder.dbTimeSeriesPerReplication(db: KSLDatabase, expName: String, responseName: String, repIds: Set<Int>? = null, showPlot: Boolean = true)

Appends a "Time Series by Replication — responseName" section overlaying one line per replication, with the period index on the x-axis and the response value on the y-axis.

Link copied to clipboard
fun ReportBuilder.dbTimeSeriesResponses(db: KSLDatabase, expName: String, confidenceLevel: Double = 0.95, showPlots: Boolean = true)

Appends one across-replication time-series sub-section per distinct time-series response recorded for expName. Emits nothing when the experiment has no stored time-series data.

Link copied to clipboard
fun ReportBuilder.dbWithinReplicationDiagnostics(db: KSLDatabase, expName: String, responseName: String, confidenceLevel: Double = 0.95, showPlots: Boolean = true)

Appends a "Within-Replication Diagnostics — responseName" section bundling, in order: an across-replication statistics table, a histogram, an observations plot, and normal Q-Q / P-P plots — the full diagnostic set for one response.

Link copied to clipboard
fun ReportBuilder.designedExperiment(de: DesignedExperimentIfc, confidenceLevel: Double = 0.95, coded: Boolean = false, showDetails: Boolean = false, boxPlotResponses: List<String> = emptyList(), caption: String? = null)

Appends a self-contained section reporting the full structure and results of de.

Link copied to clipboard
fun ReportBuilder.designedExperimentBoxPlot(de: DesignedExperimentIfc, responseName: String, caption: String? = null, xAxisLabel: String? = null, yAxisLabel: String? = null)

Appends a MultiBoxPlot comparing per-replication distributions across executed design points for a single responseName in de.

Link copied to clipboard
fun ReportBuilder.designedExperimentRegression(de: DesignedExperimentIfc, responseName: String, linearModel: LinearModel, confidenceLevel: Double = 0.95, coded: Boolean = true, showDiagnosticPlots: Boolean = true, caption: String? = null)

Appends a self-contained regression-analysis section for a single response from de.

Link copied to clipboard
fun ReportBuilder.discreteDataSummary(pmf: PMFData, caption: String? = null, confidenceLevel: Double = 0.95)

Appends a self-contained section summarising the characteristics of the integer data held by pmf, with no plots.

Link copied to clipboard
fun ReportBuilder.discreteGoodnessOfFit(fit: PMFFitData, caption: String? = null, confidenceLevel: Double = 0.95)

Appends a self-contained section reporting the goodness-of-fit results for a single DiscretePMFGoodnessOfFit.

fun ReportBuilder.discreteGoodnessOfFit(gof: DiscretePMFGoodnessOfFit, modeler: PMFModeler, caption: String? = null, confidenceLevel: Double = 0.95)

Backward-compatible overload that renders the discrete goodness-of-fit section for a live DiscretePMFGoodnessOfFit, using modeler for the PMF comparison plot's empirical data. Delegates to the PMFFitData renderer.

Link copied to clipboard

Appends a self-contained section containing three exploratory plots for the integer data held by pmf. No fitted distribution is assumed.

Link copied to clipboard

Appends the dataset-level dispersion analysis (discrete path; no-op when absent).

Link copied to clipboard
fun ReportBuilder.experimentalDesign(design: ExperimentalDesignIfc, coded: Boolean = false, caption: String? = null)

Appends a self-contained section describing the complete structure of design.

Link copied to clipboard

Appends a single section containing a DataTable of all 15 run-configuration fields from params.

Link copied to clipboard
fun ReportBuilder.factor(factor: Factor, caption: String? = null)

Appends a single section describing all properties of factor.

Link copied to clipboard

Appends the four fit-quality plots for one fit, reconstructed from the fitted distribution and the supplied raw data. No-op when the fit failed, the family cannot be reconstructed, or the distribution build returns null.

Link copied to clipboard

Appends the ranked list of fitted distributions as a single table.

Link copied to clipboard
fun ReportBuilder.goodnessOfFit(fit: PDFFitData, caption: String? = null, confidenceLevel: Double = 0.95)

Appends a self-contained section reporting the goodness-of-fit results for a single fitted distribution (PDFFitData).

fun ReportBuilder.goodnessOfFit(result: ScoringResult, modeler: PDFModeler, caption: String? = null, confidenceLevel: Double = 0.95)

Backward-compatible overload that renders the goodness-of-fit section for a live ScoringResult, using modeler for the bootstrap parameter estimates. Delegates to the PDFFitData renderer.

Link copied to clipboard

Appends the goodness-of-fit detail for one fit (no-op when absent).

Link copied to clipboard
fun heading(text: String, level: Int = 1)

Appends a ReportNode.Heading at the given level (1–6).

Link copied to clipboard
fun ReportBuilder.histogram(h: Histogram, caption: String? = null, confidenceLevel: Double = 0.95, showPlot: Boolean = true)

Appends a self-contained section that reports the bin structure, over/underflow summary, bin frequency table, statistics on binned observations, and a histogram plot.

fun ReportBuilder.histogram(h: HistogramIfc, caption: String? = null, confidenceLevel: Double = 0.95, showPlot: Boolean = true)

Overload of histogram that accepts a HistogramIfc reference.

Link copied to clipboard
fun ReportBuilder.integerFrequency(freq: IntegerFrequency, caption: String? = null, confidenceLevel: Double = 0.95, showStatistics: Boolean = true)

Appends a self-contained section that reports the frequency distribution, summary statistics on the observed integer values, and a frequency bar plot.

Link copied to clipboard

Appends the integer-frequency distribution (discrete path; no-op when absent).

Link copied to clipboard
fun ReportBuilder.jsonControlsTable(controls: List<JsonControlData>, caption: String? = "JSON Controls", jsonValueWidth: Int = 60, includeComment: Boolean = true)

Appends a table of JSON controls from controls.

Link copied to clipboard
fun ReportBuilder.linearModel(model: LinearModel, caption: String? = null)

Appends a single section describing the terms of model.

Link copied to clipboard

Appends a self-contained section for a MC1DIntegration experiment.

Link copied to clipboard
fun ReportBuilder.mcExperiment(exp: MCExperiment, caption: String? = null)

Appends a self-contained section reporting the configuration, convergence diagnostics, and statistical estimate for any MCExperiment.

Link copied to clipboard

Appends a single Experiment Configuration section containing a DataTable of all setup parameters for exp.

Link copied to clipboard

Appends a single Convergence Diagnostics section for exp.

Link copied to clipboard

Appends a self-contained section for a MCMultiVariateIntegration experiment.

Link copied to clipboard
fun ReportBuilder.moda(model: AdditiveMODAModel, caption: String? = null)

Appends a self-contained section reporting the results of a live AdditiveMODAModel. This is a thin backward-compatible entry point: it projects the model into a MODAReportData holder via modaReportData and delegates to the moda overload that renders from the holder. See that overload for the section structure produced.

fun ReportBuilder.moda(data: MODAReportData, caption: String? = null)

Appends a self-contained section reporting MODA results from a MODAReportData holder. The holder is produced from a live AdditiveMODAModel (via modaReportData) or from a reconstructed/serialized result, so the same standard report renders from either source.

Link copied to clipboard
fun ReportBuilder.modaAnalysis(moda: MODAAnalyzer, caption: String? = null, confidenceLevel: Double = 0.95)

Appends a self-contained section reporting a MODAAnalyzer result.

Link copied to clipboard

Appends the full MODA scoring detail as a set of flat tables.

Link copied to clipboard
fun ReportBuilder.multiBootstrap(mb: MultiBootstrap, caption: String? = null, confidenceLevel: Double = 0.95, showDetail: Boolean = false, showDensityPlot: Boolean = false)

Appends a self-contained section reporting a MultiBootstrap container: first the container configuration (name, estimator, per-factor n and B), then a bootstrapEstimates section for all internal Bootstrap instances.

Link copied to clipboard
fun ReportBuilder.multiBoxPlot(dataMap: Map<String, DoubleArray>, caption: String? = null, xAxisLabel: String? = null, yAxisLabel: String? = null)

Appends a MultiBoxPlot built from pre-assembled observation data.

Link copied to clipboard
fun ReportBuilder.multipleComparison(mca: MultipleComparisonAnalyzer, direction: MCBDirection = MCBDirection.BOTH, indifferenceZone: Double = mca.defaultIndifferenceZone, altConfidenceLevel: Double = mca.defaultLevel, diffConfidenceLevel: Double = mca.defaultLevel, probCorrectSelection: Double = mca.defaultLevel, showAltCIPlot: Boolean = false, showBoxPlot: Boolean = false, xAxisLabel: String? = null, yAxisLabel: String? = null)

Appends a self-contained section for a MultipleComparisonAnalyzer.

Link copied to clipboard
fun ReportBuilder.multipleComparisonBoxPlot(mca: MultipleComparisonAnalyzer, caption: String? = null, xAxisLabel: String? = null, yAxisLabel: String? = null)

Appends a MultiBoxPlot comparing the per-replication distributions of all alternatives in mca.

Link copied to clipboard
fun ReportBuilder.multipleComparisonCIPlot(mca: MultipleComparisonAnalyzer, confidenceLevel: Double = mca.defaultLevel, referencePoint: Double? = null, caption: String? = null, xAxisLabel: String? = null, yAxisLabel: String? = null)

Appends a ConfidenceIntervalsPlot showing the across-replication confidence interval for each alternative's mean.

Link copied to clipboard
fun ReportBuilder.numericControlsTable(controls: List<ControlData>, caption: String? = "Numeric Controls", includeComment: Boolean = true)

Appends a table of numeric controls from controls.

Link copied to clipboard
fun ReportBuilder.observationTrace(trace: ResponseTrace, repNums: List<Int> = trace.replicationNumbers.take(1), startTime: Double = 0.0, endTime: Double = Double.MAX_VALUE)

Appends one section per replication in repNums for an observation-based (ksl.modeling.variable.Response) ResponseTrace.

Link copied to clipboard
fun pageBreak()

Appends a ReportNode.PageBreak separator.

Link copied to clipboard
fun paragraph(text: String)

Appends a ReportNode.Paragraph with the given text.

Link copied to clipboard
fun plot(plot: PlotIfc, caption: String? = null)

Appends a ReportNode.PlotNode wrapping the given PlotIfc implementation.

Link copied to clipboard

Appends a self-contained section containing residual diagnostics and three standard regression diagnostic plots for rr.

Link copied to clipboard
fun ReportBuilder.regressionParameters(rr: RegressionResultsIfc, caption: String? = null, confidenceLevel: Double = 0.95)

Appends a self-contained section containing the regression coefficient table and a significance summary for rr. No plots are included.

Link copied to clipboard
fun ReportBuilder.regressionSummary(rr: RegressionResultsIfc, caption: String? = null, confidenceLevel: Double = 0.95)

Appends a self-contained section containing the ANOVA decomposition and global model fit measures for rr. No plots are included.

Link copied to clipboard
fun ReportBuilder.responseTrace(trace: ResponseTrace, repNums: List<Int> = trace.replicationNumbers.take(1), startTime: Double = 0.0, endTime: Double = Double.MAX_VALUE)

Appends trace sections for a ResponseTrace, auto-selecting the correct visualisation based on ResponseTrace.isTimeWeighted.

Link copied to clipboard
fun ReportBuilder.scenario(scenario: Scenario, confidenceLevel: Double = 0.95, showTimings: Boolean = false, caption: String? = null)

Appends a section reporting the configuration and results of scenario.

Link copied to clipboard
fun ReportBuilder.scenarioRunner(runner: ScenarioRunner, confidenceLevel: Double = 0.95, showTimings: Boolean = false, boxPlotResponses: List<String> = emptyList(), caption: String? = null)

Appends a self-contained section reporting the full contents of runner.

Link copied to clipboard
fun ReportBuilder.scenarioRunnerBoxPlot(runner: ScenarioRunner, responseName: String, caption: String? = null, xAxisLabel: String? = null, yAxisLabel: String? = null)

Appends a MultiBoxPlot comparing per-replication distributions of a single responseName across the executed scenarios in runner.

Link copied to clipboard
fun section(title: String? = null, block: ReportBuilder.() -> Unit)

Creates a nested section with the given title and appends it to this builder. The block is applied to a new ReportBuilder scoped to the section.

Link copied to clipboard

Appends the left-shift analysis (continuous path; no-op when absent).

Link copied to clipboard

Appends a section containing one sub-section per integer-frequency response collected by the model, each rendered by integerFrequency.

Link copied to clipboard
fun ReportBuilder.simulationHistograms(reporter: SimulationReporter, confidenceLevel: Double = 0.95)

Appends a section containing one sub-section per histogram collected by the model, each rendered by histogram.

Link copied to clipboard
fun ReportBuilder.simulationResults(reporter: SimulationReporter, model: Model? = null, confidenceLevel: Double = 0.95)

Appends a complete simulation results report as a sequence of sections inside the current builder scope, in the following order:

Link copied to clipboard
fun ReportBuilder.simulationRun(run: SimulationRun, confidenceLevel: Double = 0.95, showTimings: Boolean = false, caption: String? = null)

Appends a self-contained section reporting the full contents of run.

Link copied to clipboard
fun ReportBuilder.simulationSummary(reporter: SimulationReporter, model: Model? = null, confidenceLevel: Double = 0.95)

Appends a section containing simulation metadata (model name, experiment name, replications, run length, warm-up length) and the across-replication statistics half-width summary table.

Link copied to clipboard
fun ReportBuilder.simulationTimeSeries(model: Model, confidenceLevel: Double = 0.95)

Appends a section containing one sub-section per TimeSeriesResponse found in the model, each rendered by timeSeriesResponse.

Link copied to clipboard

Appends a completed-snapshot across-replication statistics section.

Link copied to clipboard
fun ReportBuilder.snapshotHistogram(responseName: String, binRows: List<HistogramTableData>, caption: String? = null, showPlot: Boolean = true)

Appends a single histogram section from snapshot histogram rows.

Link copied to clipboard
fun ReportBuilder.snapshotIntegerFrequency(frequencyName: String, cellRows: List<FrequencyTableData>, caption: String? = null, showPlot: Boolean = true)

Appends a single integer-frequency section from snapshot frequency rows.

Link copied to clipboard

Appends a run-summary section for the simulation run embedded in an SimulationSnapshot.ExperimentCompleted snapshot.

Link copied to clipboard

Appends a "Frequencies" section for a completed snapshot.

Link copied to clipboard

Appends a "Histograms" section for a completed snapshot.

Link copied to clipboard
fun ReportBuilder.snapshotSimulationResults(snapshot: SimulationSnapshot.ExperimentCompleted, showPlots: Boolean = true, showTimeSeries: Boolean = true, showDiagnostics: Boolean = false, timeSeriesConfidenceLevel: Double = 0.95)

Appends the standard completed-snapshot report sections in canonical order.

Link copied to clipboard

Appends a "Time-Series Responses" section from completed-snapshot time-series rows.

Link copied to clipboard
fun ReportBuilder.solver(s: Solver, caption: String? = null)

Convenience overload that reads Solver.solverResult and delegates to solverResult.

Link copied to clipboard
fun ReportBuilder.solverConfiguration(s: Solver, caption: String = "Solver Configuration")

Appends a single DataTable enumerating the supplied solver's configuration properties — the structured form of Solver.toString, usable in any ReportBuilder-built document.

Link copied to clipboard
fun ReportBuilder.solverResult(result: SolverResult, caption: String? = null)

Appends a self-contained section reporting the outcome of a simulation optimisation run described by a SolverResult.

Link copied to clipboard
fun ReportBuilder.stateFrequency(freq: StateFrequency, caption: String? = null, confidenceLevel: Double = 0.95, showStatistics: Boolean = true, showTransitions: Boolean = true, showTransitionProportions: Boolean = false, showPlot: Boolean = true, proportions: Boolean = false)

Appends a self-contained section that reports the state frequency distribution, summary statistics on the observed state numbers, optional transition matrices, and a frequency bar plot.

Link copied to clipboard
fun ReportBuilder.stateVariableTrace(trace: ResponseTrace, repNums: List<Int> = trace.replicationNumbers.take(1), startTime: Double = 0.0, endTime: Double = Double.MAX_VALUE)

Appends one section per replication in repNums for a time-weighted (ksl.modeling.variable.TWResponse) ResponseTrace.

Link copied to clipboard
fun ReportBuilder.statistic(stat: StatisticIfc, confidenceLevel: Double = 0.95)

Appends a self-contained section for a single StatisticIfc instance.

Link copied to clipboard
fun ReportBuilder.statisticCompact(stat: StatisticIfc, caption: String? = null, confidenceLevel: Double = 0.95, detail: Boolean = false)

Appends a compact single-row ksl.utilities.io.report.ast.ReportNode.StatTable for stat without wrapping it in a section.

Link copied to clipboard
fun ReportBuilder.statistics(stats: List<StatisticIfc>, caption: String? = null, confidenceLevel: Double = 0.95, detail: Boolean = false)

Appends a single ksl.utilities.io.report.ast.ReportNode.StatTable for a list of StatisticIfc instances — the most common reporting case for across-replication summary statistics.

Link copied to clipboard
fun statPropertyTable(stat: StatisticIfc, caption: String? = null, confidenceLevel: Double = 0.95)

Appends a ReportNode.StatPropertyTable — a vertical Property | Value table for a single StatisticIfc.

Link copied to clipboard
fun statTable(stats: List<StatisticIfc>, caption: String? = null, confidenceLevel: Double = 0.95, detail: Boolean = false)

Appends a ReportNode.StatTable for the given list of StatisticIfc instances.

Link copied to clipboard
fun ReportBuilder.stringControlsTable(controls: List<StringControlData>, caption: String? = "String Controls", includeAllowedValues: Boolean = true, includeComment: Boolean = true)

Appends a table of string controls from controls.

Link copied to clipboard
fun ReportBuilder.stringFrequency(freq: StringFrequency, caption: String? = null, showPlot: Boolean = true, proportions: Boolean = false)

Appends a self-contained section that reports the frequency distribution and an optional frequency bar plot for a StringFrequency tabulation.

Link copied to clipboard
fun ReportBuilder.supplyChainCostSummary(network: MultiEchelonNetwork, confidenceLevel: Double = 0.95)

A cost-summary section: for each attached CostFormulation, a compact tier × line matrix of average costs (only the tiers and lines the topology actually produces), a TOTAL row, and the grand total with a confidence half-width. When more than one formulation is attached, a grand-total comparison table is appended for the comparative study.

Link copied to clipboard

An inventory-performance section: one row per inventory holding point (sorted by level) with the aggregate replication-average on-hand, on-order, backordered, first-fill-rate, and customer wait time.

Link copied to clipboard

A topology overview section: a one-line summary plus a node table (name, kind, level, supplier) and an item table (unit cost, weight, cube).

Link copied to clipboard
fun ReportBuilder.tabularFileSchema(file: TabularFile, caption: String? = null)

Appends a "Schema" section describing the column structure of any TabularFile.

Link copied to clipboard
fun ReportBuilder.tabularInputFileColumns(file: TabularInputFile, caption: String? = null, maxRows: Int = 500, confidenceLevel: Double = 0.95, showPlots: Boolean = true)

Appends a "Columns" section for a TabularInputFile with a dedicated sub-section for each column.

Link copied to clipboard
fun ReportBuilder.tabularInputFileResults(file: TabularInputFile, maxRows: Int = 500, confidenceLevel: Double = 0.95, detail: Boolean = false, showPlots: Boolean = true)

Appends the canonical full report for a TabularInputFile: a summary section followed by a per-column detail section.

Link copied to clipboard
fun ReportBuilder.tabularInputFileSummary(file: TabularInputFile, caption: String? = null, maxRows: Int = 500, confidenceLevel: Double = 0.95, detail: Boolean = false)

Appends a "Summary" section for a TabularInputFile containing the column schema, a compact across-column statistics table for all numeric columns, and a distinct/missing count table for all text columns.

Link copied to clipboard
fun text(content: String)

Appends a ReportNode.RawText verbatim text block. Rendered as <pre> in HTML, a fenced code block in Markdown, or indented plain text in the text renderer.

Link copied to clipboard
fun ReportBuilder.timeSeriesResponse(ts: TimeSeriesResponse, confidenceLevel: Double = 0.95)

Appends a self-contained section that reports the configuration and per-period across-replication statistics for a TimeSeriesResponse.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Appends a ReportNode.WeightedStatPropertyTable — a vertical Property | Value table for a single WeightedStatistic.

Link copied to clipboard
fun weightedStatTable(stats: List<WeightedStatistic>, caption: String? = null)

Appends a ReportNode.WeightedStatTable for the given list of WeightedStatistic instances. WeightedStatistic implements ksl.utilities.statistic.WeightedStatisticIfc rather than StatisticIfc and must flow through this dedicated node. For a single weighted statistic property sheet use weightedStatPropertyTable.

Link copied to clipboard
fun ReportBuilder.welchAnalysis(analyzer: WelchDataFileAnalyzer, includePartialSums: Boolean = true, includeBatchMeans: Boolean = false, includeBiasTest: Boolean = false, deletionPoint: Int = -1)

Appends a warm-up analysis section for a WelchDataFileAnalyzer.

fun ReportBuilder.welchAnalysis(observer: WelchFileObserver, includePartialSums: Boolean = true, includeBatchMeans: Boolean = false, includeBiasTest: Boolean = false, deletionPoint: Int = -1)

Appends a warm-up analysis section for a WelchFileObserver.

Link copied to clipboard
fun ReportBuilder.welchAnova(anova: WelchANOVA, caption: String? = null, confidenceLevel: Double = 0.95)

Appends a self-contained section reporting the results of a WelchANOVA test.