% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/theory.R
\name{mb_logframe}
\alias{mb_logframe}
\title{Convert a theory of change into a logframe}
\usage{
mb_logframe(toc, indicators = NULL, mov = NULL, risks = NULL)
}
\arguments{
\item{toc}{An \code{mb_toc} object from \code{\link[=mb_theory_of_change]{mb_theory_of_change()}}.}

\item{indicators}{Optional named list. Names must be one of
\code{"inputs"}, \code{"activities"}, \code{"outputs"}, \code{"outcomes"}, or
\code{"impact"}. Each element is a character vector of indicators.}

\item{mov}{Optional named list, same convention. Means of
verification per level (data source, survey, administrative
record).}

\item{risks}{Optional named list, same convention. Risks per
level.}
}
\value{
An \code{mb_logframe} object: a data frame with columns
\code{level}, \code{description}, and (if supplied) \code{indicator}, \code{mov},
\code{risk}. Multiple items per level are concatenated with \code{"; "}.
}
\description{
Pivots an \code{mb_toc} into the canonical Magenta Book logframe
table: one row per level, with optional indicators, means of
verification, and risks columns.
}
\examples{
toc <- mb_theory_of_change(
  inputs = "Funding", activities = "Workshops",
  outputs = "Attendees", outcomes = "Skills",
  impact = "Employment"
)
mb_logframe(
  toc,
  indicators = list(outputs = "n attendees", outcomes = "skills score"),
  mov        = list(outputs = "attendance log", outcomes = "post-test")
)
}
\seealso{
\code{\link[=mb_theory_of_change]{mb_theory_of_change()}}.

Other theory of change: 
\code{\link{mb_assumptions}()},
\code{\link{mb_theory_of_change}()}
}
\concept{theory of change}
