% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/api-methods.R
\name{summary.mfrm_bundle}
\alias{summary.mfrm_bundle}
\title{Summarize report/table bundles in a user-friendly format}
\usage{
\method{summary}{mfrm_bundle}(object, digits = 3, top_n = 10, ...)
}
\arguments{
\item{object}{Any report bundle produced by \code{mfrmr} table/report helpers.}

\item{digits}{Number of digits for printed numeric values.}

\item{top_n}{Number of preview rows shown from the main table component.}

\item{...}{Reserved for generic compatibility.}
}
\value{
An object of class \code{summary.mfrm_bundle}.
}
\description{
Summarize report/table bundles in a user-friendly format
}
\details{
This method provides a compact summary for bundle-like outputs
(for example: unexpected-response, fair-average, chi-square, and
category report objects). It extracts:
\itemize{
\item object class and available components
\item one-row summary table when available
\item preview rows from the main data component
\item resolved settings/options
}

Branch-aware summaries are provided for:
\itemize{
\item \code{mfrm_bias_count} (\code{branch = "original"} / \code{"facets"})
\item \code{mfrm_fixed_reports} (\code{branch = "original"} / \code{"facets"})
\item \code{mfrm_visual_summaries} (\code{branch = "original"} / \code{"facets"})
}

Additional class-aware summaries are provided for:
\itemize{
\item \code{mfrm_unexpected}, \code{mfrm_fair_average}, \code{mfrm_displacement}
\item \code{mfrm_interrater}, \code{mfrm_facets_chisq}, \code{mfrm_bias_interaction}
\item \code{mfrm_rating_scale}, \code{mfrm_category_structure}, \code{mfrm_category_curves}
\item \code{mfrm_measurable}, \code{mfrm_unexpected_after_bias}, \code{mfrm_output_bundle}
\item \code{mfrm_residual_pca}, \code{mfrm_specifications}, \code{mfrm_data_quality},
\code{mfrm_fit_measures}
\item \code{mfrm_iteration_report}, \code{mfrm_subset_connectivity}, \code{mfrm_facet_statistics}
\item \code{mfrm_facets_contract_review}, \code{mfrm_facets_fit_review},
\code{mfrm_facets_fit_df_guide}, \code{mfrm_reference_benchmark}
}
}
\section{Interpreting output}{

\itemize{
\item \code{overview}: class, component count, and selected preview component.
\item \code{summary}: one-row aggregate block when supplied by the bundle.
\item \code{preview}: first \code{top_n} rows from the main table-like component.
\item \code{settings}: resolved option values if available.
\item \code{validation_scope}: internal-versus-external validation scope when
summarizing \code{mfrm_reference_benchmark}.
\item \code{conquest_command_scope}: ConQuest command-template scope when summarizing
\code{mfrm_conquest_overlap_bundle}.
\item \code{conquest_output_contract}: requested ConQuest outputs and review handoff
when summarizing \code{mfrm_conquest_overlap_bundle}.
\item \code{normalization_scope}: extracted-table normalization scope when summarizing
\code{mfrm_conquest_overlap_tables}.
\item \code{review_scope}: supplied-table review scope when summarizing
\code{mfrm_conquest_overlap_review}.
\item \code{conquest_overlap_checks} / \code{population_policy_checks}: specialized
benchmark check previews when summarizing \code{mfrm_reference_benchmark}.
}
}

\section{Typical workflow}{

\enumerate{
\item Generate a bundle table/report helper output.
\item Run \code{summary(bundle)} for compact QA.
\item Drill into specific components via \code{$} and visualize with \code{plot(bundle, ...)}.
}
}

\examples{
\donttest{
toy_full <- load_mfrmr_data("example_core")
toy_people <- unique(toy_full$Person)[1:12]
toy <- toy_full[toy_full$Person \%in\% toy_people, , drop = FALSE]
fit <- suppressWarnings(
  fit_mfrm(toy, "Person", c("Rater", "Criterion"), "Score", method = "JML", maxit = 30)
)
t4 <- unexpected_response_table(fit, abs_z_min = 1.5, prob_max = 0.4, top_n = 5)
summary(t4)
diag <- diagnose_mfrm(fit, residual_pca = "none")
bias <- estimate_bias(fit, diag, facet_a = "Rater", facet_b = "Criterion", max_iter = 2)
t11 <- bias_count_table(bias, branch = "facets")
summary(t11)
}
}
\seealso{
\code{\link[=unexpected_response_table]{unexpected_response_table()}}, \code{\link[=fair_average_table]{fair_average_table()}}, \code{plot()}
}
