% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/api-reports.R
\name{precision_review_report}
\alias{precision_review_report}
\title{Build a precision review report}
\usage{
precision_review_report(fit, diagnostics = NULL)
}
\arguments{
\item{fit}{Output from \code{\link[=fit_mfrm]{fit_mfrm()}}.}

\item{diagnostics}{Optional output from \code{\link[=diagnose_mfrm]{diagnose_mfrm()}}.}
}
\value{
A named list with:
\itemize{
\item \code{profile}: one-row precision overview
\item \code{checks}: package-native precision review checks
\item \code{fit_separation_basis}: source-grounded fit/separation reporting boundary
\item \code{approximation_notes}: detailed method notes
\item \code{settings}: resolved model and method labels
}
}
\description{
Build a precision review report
}
\details{
This helper summarizes how \code{mfrmr} derived SE, CI, and reliability values
for the current run. It also includes a source-grounded fit/separation
basis table so users can keep mean-square fit, ZSTD standardization,
Rasch/FACETS-style separation, and package QC thresholds in separate
reporting lanes.
}
\section{What this review means}{

\code{precision_review_report()} is a reporting gatekeeper for precision claims.
It tells you how the package derived uncertainty summaries for the current
run and how cautiously those summaries should be written up.
}

\section{What this review does not justify}{

\itemize{
\item It does not, by itself, validate the measurement model or substantive
conclusions.
\item A favorable precision tier does not override convergence, fit, linking,
or design problems elsewhere in the analysis.
\item Fit and separation rows in this report are reporting/validation
boundaries, not standalone success criteria.
}
}

\section{Interpreting output}{

\itemize{
\item \code{profile}: one-row overview of the active precision tier and recommended use.
\item \code{checks}: package-native review checks for SE ordering, reliability ordering,
coverage of sample/population summaries, and SE source labels.
\item \code{fit_separation_basis}: source-grounded boundary table for fit and
separation reporting.
\item \code{approximation_notes}: method notes copied from \code{diagnose_mfrm()}.
}
}

\section{Recommended next step}{

Use the \code{profile$PrecisionTier} and \code{checks} table to decide whether SE, CI,
and reliability language can be phrased as model-based, should be qualified
as hybrid, or should remain exploratory in the final report.
}

\section{Typical workflow}{

\enumerate{
\item Run \code{diagnose_mfrm()} for the fitted model.
\item Build \code{precision_review_report(fit, diagnostics = diag)}.
\item Use \code{summary()} to see whether the run supports model-based reporting
language or should remain in exploratory/screening mode.
}
}

\examples{
toy <- load_mfrmr_data("example_core")
fit <- fit_mfrm(toy, "Person", c("Rater", "Criterion"), "Score", method = "JML", maxit = 30)
diag <- diagnose_mfrm(fit, residual_pca = "none")
out <- precision_review_report(fit, diagnostics = diag)
summary(out)
}
\seealso{
\code{\link[=diagnose_mfrm]{diagnose_mfrm()}}, \code{\link[=facet_statistics_report]{facet_statistics_report()}}, \code{\link[=reporting_checklist]{reporting_checklist()}}
}
