{
  "_id": "6ad1d7a5d3c80a766859c201",
  "Package": "weightflow",
  "Title": "Weighting Probability and Non-Probability Survey Samples with\nRecipe-Aware Replicate Variances",
  "Version": "1.3.1",
  "Authors@R": "c(\nperson(\"Juan Pablo\", \"Ferreira\", email = \"juanpablo.ferreira@fcea.edu.uy\",\nrole = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0002-1884-8187\")),\nperson(\"Andrés\", \"Gutiérrez\", role = \"aut\",\ncomment = c(ORCID = \"0009-0007-2918-1932\")))",
  "Description": "Builds survey analysis weights by declaring the whole\nweighting process as an ordered recipe of explicit adjustments,\nestimated in a single call: unknown eligibility, within-cluster\nselection, two-phase subsampling, nonresponse by weighting\nclasses or response-propensity models, calibration and\ntrimming. Calibration to known totals runs on linear, raking or\nlogit distances, bounded, ridge-penalized, model-assisted or\nintegrative with one weight per cluster; a calibrated trim\nbounds the weights while keeping the control totals exact.\nNon-probability samples are weighted against a probability\nreference sample by pseudo-weighting, mass imputation and\ndoubly robust estimators that calibrate a single weight on the\nfitted values of several working models and on the population\ntotals of the auxiliaries at once, so one multipurpose weight\nserves many variables. Variances come from a recipe-aware\nbootstrap and jackknife that re-apply the entire cascade on\neach replicate, so every adjustment is inside the variance\ninstead of being treated as fixed; across panel waves the\nreplicates are coordinated by carrying forward the selection\nmultiplicities of the sampling units, so the sample overlap\nenters the variance of a net change as covariance. Rotating and\npure panels add attrition, longitudinal weights, gross flows\nand composite estimation, a self-contained HTML report\ndocuments each step, and the weights bridge to the 'survey' and\n'srvyr' packages, which are optional: the package itself runs\non base R. The methods, and the simulation evidence behind the\nvariance estimators, are described in Ferreira (2026)\n<doi:10.1177/18747655261484262>.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Language": "en-US",
  "Roxygen": "list(markdown = TRUE, roclets = c(\"rd\"))",
  "Config/roxygen2/version": "8.0.0",
  "URL": "https://github.com/jpferreira33/weightflow,\nhttps://jpferreira33.github.io/weightflow/",
  "BugReports": "https://github.com/jpferreira33/weightflow/issues",
  "Config/testthat/edition": "3",
  "LazyData": "true",
  "VignetteBuilder": "knitr",
  "Repository": "https://jpferreira33.r-universe.dev",
  "Date/Publication": "2026-10-16 01:50:47 UTC",
  "RemoteUrl": "https://github.com/jpferreira33/weightflow",
  "RemoteRef": "HEAD",
  "RemoteSha": "b895824695e80544d2a044f3c56cddb804827e1f",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-16 07:29:32 UTC",
    "User": "root"
  },
  "Author": "Juan Pablo Ferreira [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-1884-8187>),\nAndrés Gutiérrez [aut] (ORCID: <https://orcid.org/0009-0007-2918-1932>)",
  "Maintainer": "Juan Pablo Ferreira <juanpablo.ferreira@fcea.edu.uy>",
  "_user": "jpferreira33",
  "_type": "src",
  "_file": "weightflow_1.3.1.tar.gz",
  "_fileid": "https://r2.ropensci.org/685af90174cfa36d4fd67206e135eb4c300611f6565f26b998f1b25468791a34",
  "_filesize": 2617073,
  "_sha256": "685af90174cfa36d4fd67206e135eb4c300611f6565f26b998f1b25468791a34",
  "_expires": "2027-01-24T07:52:02.000Z",
  "_created": "2026-10-16T07:29:32.000Z",
  "_published": "2026-10-16T07:52:04.950Z",
  "_buildurl": "https://github.com/r-universe/jpferreira33/actions/runs/38867154612",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 116863926876,
      "time": 233,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12031922833"
    },
    {
      "job": 116863927042,
      "time": 176,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12031308875"
    },
    {
      "job": 116863926941,
      "time": 208,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12032646153"
    },
    {
      "job": 116863927053,
      "time": 239,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12032582088"
    },
    {
      "job": 116862596930,
      "time": 236,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12032280463"
    },
    {
      "job": 116863926892,
      "time": 106,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12031258716"
    },
    {
      "job": 116863927003,
      "time": 210,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12032166510"
    },
    {
      "job": 116863927051,
      "time": 216,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12031638036"
    },
    {
      "job": 116863926992,
      "time": 195,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12032390480"
    }
  ],
  "_upstream": "https://github.com/jpferreira33/weightflow",
  "_commit": {
    "id": "b895824695e80544d2a044f3c56cddb804827e1f",
    "author": "Juan Pablo Ferreira <jferreir@ine.gub.uy>",
    "committer": "Juan Pablo Ferreira <jferreir@ine.gub.uy>",
    "message": "Report the actual check environments and add a Windows R-devel leg to CI\n",
    "time": 1792115447
  },
  "_maintainer": {
    "name": "Juan Pablo Ferreira",
    "email": "juanpablo.ferreira@fcea.edu.uy",
    "orcid": "0000-0002-1884-8187"
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "graphics",
      "role": "Imports"
    },
    {
      "package": "parallel",
      "role": "Imports"
    },
    {
      "package": "MASS",
      "role": "Suggests"
    },
    {
      "package": "rpart",
      "role": "Suggests"
    },
    {
      "package": "ranger",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "survey",
      "role": "Suggests"
    },
    {
      "package": "srvyr",
      "role": "Suggests"
    },
    {
      "package": "dplyr",
      "role": "Suggests"
    },
    {
      "package": "tidyr",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "haven",
      "role": "Suggests"
    },
    {
      "package": "archive",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "spelling",
      "role": "Suggests"
    },
    {
      "package": "xgboost",
      "role": "Suggests"
    },
    {
      "package": "yaml",
      "role": "Suggests"
    }
  ],
  "_owner": "jpferreira33",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-25",
      "n": 19
    },
    {
      "week": "2026-26",
      "n": 15
    },
    {
      "week": "2026-27",
      "n": 12
    },
    {
      "week": "2026-28",
      "n": 23
    },
    {
      "week": "2026-29",
      "n": 2
    },
    {
      "week": "2026-30",
      "n": 7
    },
    {
      "week": "2026-31",
      "n": 4
    },
    {
      "week": "2026-32",
      "n": 46
    },
    {
      "week": "2026-33",
      "n": 17
    },
    {
      "week": "2026-34",
      "n": 15
    },
    {
      "week": "2026-35",
      "n": 7
    },
    {
      "week": "2026-36",
      "n": 3
    },
    {
      "week": "2026-37",
      "n": 2
    },
    {
      "week": "2026-40",
      "n": 4
    },
    {
      "week": "2026-42",
      "n": 11
    }
  ],
  "_tags": [
    {
      "name": "v0.1.0",
      "date": "2026-06-20"
    },
    {
      "name": "v0.2.0",
      "date": "2026-07-22"
    }
  ],
  "_stars": 8,
  "_contributors": [
    {
      "user": "jpferreira33",
      "count": 207,
      "uuid": 66394568
    }
  ],
  "_userbio": {
    "uuid": 66394568,
    "type": "user",
    "name": "Juan Pablo Ferreira",
    "followers": 31,
    "description": "Survey Statistician | Professor at IESTA - FCEA - UDELAR | Director of Methodology and Research at the National Institute of Statistics of Uruguay"
  },
  "_downloads": {
    "count": 506,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/weightflow"
  },
  "_devurl": "https://github.com/jpferreira33/weightflow",
  "_pkgdown": "https://jpferreira33.github.io/weightflow/",
  "_searchresults": 27,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/weightflow.html",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/jpferreira33/weightflow",
  "_realowner": "jpferreira33",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2026-06-30"
    },
    {
      "version": "0.2.0",
      "date": "2026-07-22"
    },
    {
      "version": "1.0.0",
      "date": "2026-08-04"
    },
    {
      "version": "1.1.0",
      "date": "2026-08-19"
    },
    {
      "version": "1.2.0",
      "date": "2026-09-08"
    },
    {
      "version": "1.3.0",
      "date": "2026-09-11"
    },
    {
      "version": "1.3.1",
      "date": "2026-10-16"
    }
  ],
  "_exports": [
    "as_sae_input",
    "as_svrepdesign",
    "as_svydesign",
    "boot_flows",
    "boot_mean",
    "boot_total",
    "boot_transition",
    "bootstrap_estimate",
    "bootstrap_weights",
    "change_estimate",
    "change_mean",
    "change_total",
    "collect_estimates",
    "collect_propensities",
    "collect_replicate_weights",
    "collect_step_detail",
    "collect_weights",
    "data_defect",
    "design_effect",
    "disclosure_risk",
    "domain_summary",
    "has_alerts",
    "jack_mean",
    "jack_total",
    "jackknife_estimate",
    "jackknife_weights",
    "level_estimate",
    "level_mean",
    "level_total",
    "nr_sensitivity",
    "panel_design",
    "panel_estimate",
    "panel_mean",
    "panel_merge",
    "panel_pr",
    "panel_total",
    "prep",
    "read_recipe",
    "reference_sample",
    "report_panel",
    "report_weighting",
    "step_assert",
    "step_attrition",
    "step_calibrate",
    "step_cre",
    "step_cross_sectional",
    "step_domain",
    "step_drop_ineligible",
    "step_estimate",
    "step_filter",
    "step_longitudinal",
    "step_model_calibration",
    "step_nonresponse",
    "step_nr_sensitivity",
    "step_panel_overlap",
    "step_pseudoweight",
    "step_rescale",
    "step_round",
    "step_select_within",
    "step_subsample",
    "step_transition",
    "step_trim",
    "step_trim_calibrated",
    "step_trim_weights",
    "step_unknown_eligibility",
    "transition_matrix",
    "two_phase_variance",
    "wave_bootstrap",
    "wave_carry",
    "wave_contrast",
    "wave_jackknife",
    "wave_step",
    "weight_factors",
    "weighting_alerts",
    "weighting_spec",
    "write_recipe",
    "y_model"
  ],
  "_datasets": [
    {
      "name": "panel_cl",
      "title": "Synthetic rotating- and pure-panel datasets",
      "object": "panel_cl",
      "class": [
        "data.frame"
      ],
      "fields": [
        "household_id",
        "person_id",
        "person_no",
        "stratum",
        "psu",
        "region",
        "sex",
        "age",
        "wave",
        "rotation_group",
        "month_in_sample",
        "pw",
        "disposition",
        "lf_status",
        "employed",
        "unemployed",
        "income"
      ],
      "rows": 4134,
      "table": true,
      "tojson": true
    },
    {
      "name": "panel_ine",
      "title": "Synthetic rotating- and pure-panel datasets",
      "object": "panel_ine",
      "class": [
        "data.frame"
      ],
      "fields": [
        "household_id",
        "person_id",
        "person_no",
        "stratum",
        "psu",
        "region",
        "sex",
        "age",
        "wave",
        "rotation_group",
        "month_in_sample",
        "pw",
        "disposition",
        "lf_status",
        "employed",
        "unemployed",
        "income"
      ],
      "rows": 6174,
      "table": true,
      "tojson": true
    },
    {
      "name": "panel_puro",
      "title": "Synthetic rotating- and pure-panel datasets",
      "object": "panel_puro",
      "class": [
        "data.frame"
      ],
      "fields": [
        "household_id",
        "person_id",
        "person_no",
        "stratum",
        "psu",
        "region",
        "sex",
        "age",
        "wave",
        "rotation_group",
        "month_in_sample",
        "pw",
        "disposition",
        "lf_status",
        "employed",
        "unemployed",
        "income"
      ],
      "rows": 9009,
      "table": true,
      "tojson": true
    },
    {
      "name": "panel_us",
      "title": "Synthetic rotating- and pure-panel datasets",
      "object": "panel_us",
      "class": [
        "data.frame"
      ],
      "fields": [
        "household_id",
        "person_id",
        "person_no",
        "stratum",
        "psu",
        "region",
        "sex",
        "age",
        "wave",
        "rotation_group",
        "month_in_sample",
        "pw",
        "disposition",
        "lf_status",
        "employed",
        "unemployed",
        "income"
      ],
      "rows": 7012,
      "table": true,
      "tojson": true
    },
    {
      "name": "population",
      "title": "Synthetic target population (sampling frame)",
      "object": "population",
      "class": [
        "data.frame"
      ],
      "fields": [
        "person_id",
        "household_id",
        "psu",
        "region",
        "sex",
        "age",
        "income",
        "employed"
      ],
      "rows": 4495,
      "table": true,
      "tojson": true
    },
    {
      "name": "sample_one",
      "title": "Synthetic address sample with one selected person per household",
      "object": "sample_one",
      "class": [
        "data.frame"
      ],
      "fields": [
        "person_id",
        "household_id",
        "psu",
        "region",
        "sex",
        "age",
        "pw",
        "status",
        "unknown_elig",
        "ineligible",
        "hh_responded",
        "responded",
        "n_elig",
        "p_within",
        "income",
        "employed",
        "disposition"
      ],
      "rows": 417,
      "table": true,
      "tojson": true
    },
    {
      "name": "sample_survey",
      "title": "Synthetic person sample with a take-all household roster",
      "object": "sample_survey",
      "class": [
        "data.frame"
      ],
      "fields": [
        "person_id",
        "household_id",
        "psu",
        "region",
        "sex",
        "age",
        "pw",
        "unknown_elig",
        "responded",
        "income",
        "employed"
      ],
      "rows": 467,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "as_sae_input",
      "title": "Direct estimates and design SEs per domain, ready for small-area estimation",
      "concept": [
        "cascade audit"
      ],
      "topics": [
        "as_sae_input"
      ]
    },
    {
      "page": "as_svydesign",
      "title": "Export weightflow weights to a survey design",
      "concept": [
        "variance estimation"
      ],
      "topics": [
        "as_svrepdesign",
        "as_svydesign"
      ]
    },
    {
      "page": "boot_flows",
      "title": "Gross-flow TOTALS with standard errors, plus net flows and margins",
      "topics": [
        "boot_flows"
      ]
    },
    {
      "page": "boot_transition",
      "title": "Transition matrix with per-cell bootstrap standard errors",
      "topics": [
        "boot_transition"
      ]
    },
    {
      "page": "bootstrap_estimate",
      "title": "Bootstrap estimate, standard error and confidence interval",
      "concept": [
        "variance estimation"
      ],
      "topics": [
        "bootstrap_estimate",
        "boot_mean",
        "boot_total"
      ]
    },
    {
      "page": "bootstrap_weights",
      "title": "Recipe-aware bootstrap replicate weights",
      "concept": [
        "variance estimation"
      ],
      "topics": [
        "bootstrap_weights"
      ]
    },
    {
      "page": "change_estimate",
      "title": "Net change between two panel waves, with honest variance",
      "topics": [
        "change_estimate",
        "change_mean",
        "change_total"
      ]
    },
    {
      "page": "collect_estimates",
      "title": "Evaluate an estimation pipeline",
      "topics": [
        "collect_estimates"
      ]
    },
    {
      "page": "collect_propensities",
      "title": "Recover the fitted response propensities of a nonresponse step",
      "concept": [
        "cascade audit"
      ],
      "topics": [
        "collect_propensities"
      ]
    },
    {
      "page": "collect_replicate_weights",
      "title": "Collect replicate weights into a data frame ready for srvyr",
      "concept": [
        "variance estimation"
      ],
      "topics": [
        "collect_replicate_weights"
      ]
    },
    {
      "page": "collect_step_detail",
      "title": "Per-unit detail of one step of the cascade",
      "concept": [
        "cascade audit"
      ],
      "topics": [
        "collect_step_detail"
      ]
    },
    {
      "page": "collect_weights",
      "title": "Extract the data with the computed weights",
      "concept": [
        "cascade audit"
      ],
      "topics": [
        "collect_weights"
      ]
    },
    {
      "page": "data_defect",
      "title": "Data-defect diagnostics for a non-probability sample",
      "concept": [
        "non-probability tools"
      ],
      "topics": [
        "data_defect"
      ]
    },
    {
      "page": "design_effect",
      "title": "Kish design effect from unequal weighting",
      "topics": [
        "design_effect"
      ]
    },
    {
      "page": "disclosure_risk",
      "title": "Flag re-identification risk from outlier weights within a publication cell",
      "concept": [
        "confidentiality tools"
      ],
      "topics": [
        "disclosure_risk"
      ]
    },
    {
      "page": "domain_summary",
      "title": "Per-domain weight summary at every stage of the cascade",
      "concept": [
        "cascade audit"
      ],
      "topics": [
        "domain_summary"
      ]
    },
    {
      "page": "jackknife_estimate",
      "title": "Jackknife estimate, standard error and confidence interval",
      "concept": [
        "variance estimation"
      ],
      "topics": [
        "jackknife_estimate",
        "jack_mean",
        "jack_total"
      ]
    },
    {
      "page": "jackknife_weights",
      "title": "Recipe-aware delete-a-PSU jackknife replicate weights",
      "concept": [
        "variance estimation"
      ],
      "topics": [
        "jackknife_weights"
      ]
    },
    {
      "page": "level_estimate",
      "title": "Level estimate for a single panel wave, with its replicate variance",
      "topics": [
        "level_estimate",
        "level_mean",
        "level_total"
      ]
    },
    {
      "page": "nr_sensitivity",
      "title": "Read the nonresponse-sensitivity analysis from a prepped recipe",
      "concept": [
        "diagnostics"
      ],
      "topics": [
        "nr_sensitivity"
      ]
    },
    {
      "page": "panel_datasets",
      "title": "Synthetic rotating- and pure-panel datasets",
      "topics": [
        "panel_cl",
        "panel_datasets",
        "panel_ine",
        "panel_puro",
        "panel_us"
      ]
    },
    {
      "page": "panel_design",
      "title": "Describe the rotating-panel structure of a survey",
      "topics": [
        "panel_design"
      ]
    },
    {
      "page": "panel_estimate",
      "title": "Linear combination of panel waves, with honest between-wave variance",
      "topics": [
        "panel_estimate",
        "panel_mean",
        "panel_total"
      ]
    },
    {
      "page": "panel_merge",
      "title": "Build the wide longitudinal file from per-wave surveys",
      "topics": [
        "panel_merge"
      ]
    },
    {
      "page": "panel_pr",
      "title": "Panel-selection probability for a set of combined waves",
      "topics": [
        "panel_pr"
      ]
    },
    {
      "page": "plot.prepped_weighting_spec",
      "title": "Diagnostic plots for the weights",
      "topics": [
        "plot.prepped_weighting_spec"
      ]
    },
    {
      "page": "population",
      "title": "Synthetic target population (sampling frame)",
      "topics": [
        "population"
      ]
    },
    {
      "page": "prep",
      "title": "Estimate the weighting cascade",
      "topics": [
        "prep"
      ]
    },
    {
      "page": "print.weightflow_boot",
      "title": "Print a bootstrap replicate-weight object",
      "topics": [
        "print.weightflow_boot"
      ]
    },
    {
      "page": "print.weightflow_jack",
      "title": "Print a jackknife replicate-weight object",
      "topics": [
        "print.weightflow_jack"
      ]
    },
    {
      "page": "read_recipe",
      "title": "Read a weighting recipe from a YAML file",
      "concept": [
        "recipe serialization"
      ],
      "topics": [
        "read_recipe"
      ]
    },
    {
      "page": "reference_sample",
      "title": "Use a weighted survey as the calibration reference instead of a frame",
      "topics": [
        "reference_sample"
      ]
    },
    {
      "page": "report_panel",
      "title": "Panel / longitudinal HTML report",
      "topics": [
        "report_panel"
      ]
    },
    {
      "page": "report_weighting",
      "title": "Self-contained HTML quality report for a weighting recipe",
      "topics": [
        "report_weighting"
      ]
    },
    {
      "page": "sample_one",
      "title": "Synthetic address sample with one selected person per household",
      "topics": [
        "sample_one"
      ]
    },
    {
      "page": "sample_survey",
      "title": "Synthetic person sample with a take-all household roster",
      "topics": [
        "sample_survey"
      ]
    },
    {
      "page": "step_assert",
      "title": "Assert quality conditions on the weights",
      "concept": [
        "weighting steps"
      ],
      "topics": [
        "step_assert"
      ]
    },
    {
      "page": "step_attrition",
      "title": "Attrition adjustment for panel waves",
      "topics": [
        "step_attrition"
      ]
    },
    {
      "page": "step_calibrate",
      "title": "Calibration to population totals",
      "concept": [
        "weighting steps"
      ],
      "topics": [
        "step_calibrate"
      ]
    },
    {
      "page": "step_cre",
      "title": "Composite regression estimator (CRE / regression composite estimation)",
      "concept": [
        "weighting steps"
      ],
      "topics": [
        "step_cre"
      ]
    },
    {
      "page": "step_cross_sectional",
      "title": "Declare the recipe's scope: cross-sectional or longitudinal weights",
      "topics": [
        "step_cross_sectional",
        "step_longitudinal"
      ]
    },
    {
      "page": "step_domain",
      "title": "Declarative estimation over a coordinated panel object",
      "topics": [
        "step_domain",
        "step_estimate",
        "step_filter",
        "step_transition"
      ]
    },
    {
      "page": "step_drop_ineligible",
      "title": "Drop ineligible (out-of-scope) units",
      "concept": [
        "weighting steps"
      ],
      "topics": [
        "step_drop_ineligible"
      ]
    },
    {
      "page": "step_model_calibration",
      "title": "Model calibration (Wu and Sitter 2001)",
      "concept": [
        "weighting steps"
      ],
      "topics": [
        "step_model_calibration"
      ]
    },
    {
      "page": "step_nonresponse",
      "title": "Nonresponse adjustment",
      "concept": [
        "weighting steps"
      ],
      "topics": [
        "step_nonresponse"
      ]
    },
    {
      "page": "step_nr_sensitivity",
      "title": "Sensitivity of a mean to nonignorable nonresponse or selection",
      "concept": [
        "weighting steps"
      ],
      "topics": [
        "step_nr_sensitivity"
      ]
    },
    {
      "page": "step_panel_overlap",
      "title": "Adjust base weights by the panel-selection probability (CEPAL ch. XVI)",
      "topics": [
        "step_panel_overlap"
      ]
    },
    {
      "page": "step_pseudoweight",
      "title": "Pseudo-weights for a non-probability sample against a reference",
      "concept": [
        "weighting steps"
      ],
      "topics": [
        "step_pseudoweight"
      ]
    },
    {
      "page": "step_rescale",
      "title": "Rescale the weights to a fixed sum",
      "concept": [
        "weighting steps"
      ],
      "topics": [
        "step_rescale"
      ]
    },
    {
      "page": "step_round",
      "title": "Round the final weights",
      "concept": [
        "weighting steps"
      ],
      "topics": [
        "step_round"
      ]
    },
    {
      "page": "step_select_within",
      "title": "Within-cluster selection adjustment",
      "concept": [
        "weighting steps"
      ],
      "topics": [
        "step_select_within"
      ]
    },
    {
      "page": "step_subsample",
      "title": "Second-phase subsampling (two-phase sampling)",
      "concept": [
        "weighting steps"
      ],
      "topics": [
        "step_subsample"
      ]
    },
    {
      "page": "step_trim",
      "title": "Trim extreme weights against a ratio",
      "concept": [
        "weighting steps"
      ],
      "topics": [
        "step_trim"
      ]
    },
    {
      "page": "step_trim_calibrated",
      "title": "Trimmed calibration (range-restricted, totals-preserving)",
      "concept": [
        "weighting steps"
      ],
      "topics": [
        "step_trim_calibrated"
      ]
    },
    {
      "page": "step_trim_weights",
      "title": "Automatic weight trimming to an absolute band",
      "concept": [
        "weighting steps"
      ],
      "topics": [
        "step_trim_weights"
      ]
    },
    {
      "page": "step_unknown_eligibility",
      "title": "Unknown-eligibility adjustment",
      "concept": [
        "weighting steps"
      ],
      "topics": [
        "step_unknown_eligibility"
      ]
    },
    {
      "page": "summary.prepped_weighting_spec",
      "title": "Detailed per-step diagnostics",
      "topics": [
        "summary.prepped_weighting_spec"
      ]
    },
    {
      "page": "transition_matrix",
      "title": "Gross-flow transition matrix between two panel waves",
      "topics": [
        "transition_matrix"
      ]
    },
    {
      "page": "two_phase_variance",
      "title": "Decompose a two-phase variance into V = V1 + V2",
      "topics": [
        "two_phase_variance"
      ]
    },
    {
      "page": "wave_bootstrap",
      "title": "Coordinated bootstrap across panel waves",
      "topics": [
        "wave_bootstrap"
      ]
    },
    {
      "page": "wave_carry",
      "title": "Extract the carry artifact of a period",
      "topics": [
        "wave_carry"
      ]
    },
    {
      "page": "wave_contrast",
      "title": "Linear combination of an estimand across a chain of periods",
      "topics": [
        "wave_contrast"
      ]
    },
    {
      "page": "wave_jackknife",
      "title": "Coordinated delete-one jackknife across panel waves",
      "topics": [
        "wave_jackknife"
      ]
    },
    {
      "page": "wave_step",
      "title": "One period of a coordinated panel bootstrap, chained from the previous ones",
      "topics": [
        "wave_step"
      ]
    },
    {
      "page": "weight_factors",
      "title": "Per-unit adjustment factors table",
      "concept": [
        "cascade audit"
      ],
      "topics": [
        "weight_factors"
      ]
    },
    {
      "page": "weightflow-alerts",
      "title": "Quality alerts raised while preparing a recipe",
      "topics": [
        "weightflow-alerts"
      ]
    },
    {
      "page": "weightflow-concepts",
      "title": "Conventions shared by every weightflow step",
      "topics": [
        "weightflow-concepts"
      ]
    },
    {
      "page": "weighting_alerts",
      "title": "Quality alerts recorded while preparing a recipe",
      "concept": [
        "cascade audit"
      ],
      "topics": [
        "has_alerts",
        "weighting_alerts"
      ]
    },
    {
      "page": "weighting_spec",
      "title": "Start a weighting specification",
      "topics": [
        "weighting_spec"
      ]
    },
    {
      "page": "write_recipe",
      "title": "Write a weighting recipe to a YAML file",
      "concept": [
        "recipe serialization"
      ],
      "topics": [
        "write_recipe"
      ]
    },
    {
      "page": "y_model",
      "title": "Specify a working model for a study variable y",
      "topics": [
        "y_model"
      ]
    }
  ],
  "_pkglogo": "https://github.com/jpferreira33/weightflow/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/jpferreira33/weightflow/raw/HEAD/README.md",
  "_rundeps": [],
  "_vignettes": [
    {
      "source": "reference-survey.Rmd",
      "filename": "reference-survey.html",
      "title": "Calibrating to a reference survey",
      "engine": "knitr::rmarkdown",
      "headings": [
        "A reference survey is a weighted data frame",
        "Estimated totals carry variance, so propagate it",
        "Only the bootstrap propagates this component",
        "When to use which"
      ],
      "created": "2026-08-24 13:46:16",
      "modified": "2026-08-24 13:46:16",
      "commits": 1
    },
    {
      "source": "calibration.Rmd",
      "filename": "calibration.html",
      "title": "Calibration: raking, post-stratification and GREG",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What calibration does",
        "Why calibration reduces variance: the regression link",
        "Post-stratification",
        "Raking",
        "Linear calibration (GREG)",
        "Bounded calibration",
        "Equal weights within a cluster",
        "Which to use",
        "See also",
        "References"
      ],
      "created": "2026-06-26 23:03:44",
      "modified": "2026-08-24 13:46:16",
      "commits": 4
    },
    {
      "source": "composite-estimation.Rmd",
      "filename": "composite-estimation.html",
      "title": "Composite estimation: borrowing strength from the previous wave",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The estimator",
        "The birth rotation group, and why there are two imputations",
        "Where each symbol lives in the call",
        "The recursion",
        "What it buys",
        "The variance trap",
        "The fat carry",
        "Equal representation across rotation groups",
        "References",
        "Where to look next"
      ],
      "created": "2026-09-10 17:20:32",
      "modified": "2026-10-14 16:12:32",
      "commits": 3
    },
    {
      "source": "coordinated-replication.Rmd",
      "filename": "coordinated-replication.html",
      "title": "Coordinated replication: what travels between waves",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What has to travel",
        "The four cases",
        "Reading $strata",
        "The covariance is the pairing",
        "previous is a list, and the lag is a design property",
        "What coordination does not touch",
        "Where to look next"
      ],
      "created": "2026-09-10 17:20:32",
      "modified": "2026-09-28 18:04:18",
      "commits": 2
    },
    {
      "source": "quality-report.Rmd",
      "filename": "quality-report.html",
      "title": "Documenting and auditing the weights: the quality report",
      "engine": "knitr::rmarkdown",
      "headings": [
        "A worked recipe",
        "What the report contains",
        "Arguments"
      ],
      "created": "2026-08-03 17:59:41",
      "modified": "2026-08-24 13:46:16",
      "commits": 5
    },
    {
      "source": "quickstart.Rmd",
      "filename": "quickstart.html",
      "title": "From raw sample to final weights",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The problem is not the weights",
        "A map of what the steps are for",
        "The same strategy as one object",
        "The shortest real recipe",
        "The object is the documentation",
        "Where to go next"
      ],
      "created": "2026-07-09 01:56:41",
      "modified": "2026-10-14 16:12:32",
      "commits": 3
    },
    {
      "source": "inspecting-auditing.Rmd",
      "filename": "inspecting-auditing.html",
      "title": "Inspecting and auditing the cascade",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Every step has a stable id",
        "The quality-alert gate",
        "Unit by unit: what did a step do?",
        "Domain by domain: is each domain reliable?",
        "HTML report vs programmatic QC"
      ],
      "created": "2026-08-24 13:46:16",
      "modified": "2026-08-24 13:46:16",
      "commits": 1
    },
    {
      "source": "advanced-methods.Rmd",
      "filename": "advanced-methods.html",
      "title": "Machine learning, cross-fitting and robust calibration",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Flexible propensities",
        "The overfitting problem",
        "Cross-fitting",
        "Ridge (penalized) calibration",
        "Potter (MSE-optimal) trimming",
        "Redistributing the trimmed mass",
        "Calibration-preserving trimming",
        "Putting it together",
        "References"
      ],
      "created": "2026-06-25 02:57:50",
      "modified": "2026-08-03 17:59:41",
      "commits": 5
    },
    {
      "source": "model-calibration.Rmd",
      "filename": "model-calibration.html",
      "title": "Model calibration (model-assisted weighting)",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The idea",
        "In weightflow, with a random forest",
        "Validation: the constraints are met exactly",
        "Does it help the estimate?",
        "What you need: unit-level auxiliaries",
        "The hybrid: model term and consistency constraints",
        "Equal weights within a household",
        "Relationship to the literature",
        "See also"
      ],
      "created": "2026-06-20 14:10:19",
      "modified": "2026-09-28 18:04:18",
      "commits": 5
    },
    {
      "source": "nonprobability-samples.Rmd",
      "filename": "nonprobability-samples.html",
      "title": "Non-probability samples",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The two files",
        "A volunteer sample that is wrong in four different ways",
        "The reference is a sample, so give it its replicates",
        "Step one: the pseudo-weight",
        "What the sum of the weights is telling you",
        "Step two: one calibration that carries every variable",
        "Where it stops working: the rank ceiling",
        "What sharing costs",
        "What the reference contributes",
        "Dissemination",
        "How large is this sample, really?",
        "Hold something out, because the weights cannot see selection bias",
        "The whole thing",
        "In short",
        "References"
      ],
      "created": "2026-08-29 02:55:02",
      "modified": "2026-10-14 16:12:32",
      "commits": 5
    },
    {
      "source": "nonresponse-propensities.Rmd",
      "filename": "nonresponse-propensities.html",
      "title": "Nonresponse: weighting classes, propensities and calibration",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Weighting classes",
        "Response propensities",
        "Logistic regression",
        "Trees, forests and boosting",
        "Flexibility, overfitting, and cross-fitting",
        "Weighting the propensity model",
        "Person or household level",
        "Nonresponse by calibration",
        "Which to use",
        "See also"
      ],
      "created": "2026-06-20 14:10:19",
      "modified": "2026-08-24 13:46:16",
      "commits": 7
    },
    {
      "source": "preparing-the-sample.Rmd",
      "filename": "preparing-the-sample.html",
      "title": "Preparing the sample: eligibility and response before weighting",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The disposition tree",
        "What each branch means, and when it happens",
        "Why there is unused and out-of-scope sample: sizing the design",
        "What your input data needs",
        "Order of operations",
        "A full pipeline on the multistage sample",
        "The same recipe with the ready-made indicator columns",
        "References"
      ],
      "created": "2026-07-05 22:40:58",
      "modified": "2026-07-13 23:03:13",
      "commits": 6
    },
    {
      "source": "panel-longitudinal.Rmd",
      "filename": "panel-longitudinal.html",
      "title": "Pure panels: the longitudinal weight and gross flows",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The sequence, and which verb does each step",
        "The longitudinal file is an intersection",
        "Three ways to be missing, and only one of them is nonresponse",
        "Attrition compounds",
        "Calibrate to the first wave",
        "Gross flows",
        "Cross-sectional estimates from a longitudinal file are reference only",
        "Where to look next"
      ],
      "created": "2026-09-10 17:20:32",
      "modified": "2026-10-14 16:12:32",
      "commits": 3
    },
    {
      "source": "rotating-panels.Rmd",
      "filename": "rotating-panels.html",
      "title": "Rotating panels: net change, chaining and gross flows",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The structure comes first",
        "Net change between two periods",
        "Chaining: how production actually runs",
        "The estimands are declared, not programmed",
        "The chain",
        "What has to be saved",
        "Combinations over the chain",
        "The composite estimator",
        "Gross flows: who moved",
        "Where to look next"
      ],
      "created": "2026-09-10 17:20:32",
      "modified": "2026-10-14 16:12:32",
      "commits": 3
    },
    {
      "source": "weightflow.Rmd",
      "filename": "weightflow.html",
      "title": "Staged survey weighting: the adjustment logic",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The starting point: design weights",
        "The cascade",
        "Unknown eligibility",
        "Ineligible units",
        "Within-household selection",
        "Nonresponse",
        "Calibration",
        "Trimming, rounding, rescaling",
        "Reading the cascade: the design effect",
        "Why the order matters"
      ],
      "created": "2026-06-20 14:10:19",
      "modified": "2026-07-13 23:03:13",
      "commits": 4
    },
    {
      "source": "trimming.Rmd",
      "filename": "trimming.html",
      "title": "Trimming survey weights",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Automatic caps: step_trim_weights()",
        "Ratio caps: step_trim()",
        "Calibration-preserving caps: step_trim_calibrated()",
        "Bounds that differ by subgroup",
        "Which one should I use?",
        "References"
      ],
      "created": "2026-08-06 01:49:12",
      "modified": "2026-08-06 01:49:12",
      "commits": 1
    },
    {
      "source": "two-phase-sampling.Rmd",
      "filename": "two-phase-sampling.html",
      "title": "Two-phase (double) sampling",
      "engine": "knitr::rmarkdown",
      "headings": [
        "When there is a second phase of sampling",
        "A worked example",
        "The two-phase variance",
        "The cascade is re-run on every replicate",
        "Calibrating the subsample to the first-phase sample",
        "Scope",
        "References"
      ],
      "created": "2026-08-29 00:12:47",
      "modified": "2026-09-28 18:04:18",
      "commits": 4
    },
    {
      "source": "validation.Rmd",
      "filename": "validation.html",
      "title": "Validation against survey and ReGenesees",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Post-stratification",
        "Raking",
        "Calibration distances",
        "Linear (chi-square) distance -- the GREG estimator",
        "Raking (exponential) distance -- always-positive weights",
        "Logit distance -- bounded g-weights",
        "Distribution of the adjustment factors",
        "Integrative calibration (one weight per household)",
        "Domain (partitioned) calibration",
        "Estimates agree too",
        "Agreement summary",
        "Beyond survey: two checks against ReGenesees",
        "Trimmed calibration matches trimcal()",
        "Net change matches the analytic Berger-Priam estimator",
        "What weightflow adds"
      ],
      "created": "2026-09-10 17:20:32",
      "modified": "2026-09-10 17:20:32",
      "commits": 1
    },
    {
      "source": "variance-estimation.Rmd",
      "filename": "variance-estimation.html",
      "title": "Variance estimation",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Why the adjustments matter for variance",
        "Method 1: a PSU bootstrap that re-applies the recipe",
        "Estimates with bootstrap standard errors",
        "Method 2: hand the weights to the survey package",
        "Replicate weights for a tidyverse workflow",
        "Method 3: a delete-a-PSU jackknife that re-applies the recipe",
        "Lonely PSUs and parallel replicates",
        "When the finite-population correction matters",
        "Confidence intervals: normal, t and percentile",
        "Estimated control totals",
        "Which one to use"
      ],
      "created": "2026-06-20 03:32:32",
      "modified": "2026-08-24 13:46:16",
      "commits": 7
    },
    {
      "source": "calibration-totals.Rmd",
      "filename": "calibration-totals.html",
      "title": "Ways to specify calibration totals",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Post-stratification",
        "One variable",
        "Several variables crossed",
        "Raking",
        "Linear / GREG calibration",
        "Why the totals are usually awkward",
        "The tidy way",
        "Mixing categorical and continuous auxiliaries",
        "Domain (partitioned) calibration",
        "Model calibration",
        "Validation and messages",
        "Which one should I use?",
        "See also"
      ],
      "created": "2026-07-04 01:45:18",
      "modified": "2026-08-24 13:46:16",
      "commits": 6
    },
    {
      "source": "weightflow-in-production.Rmd",
      "filename": "weightflow-in-production.html",
      "title": "weightflow in production (GSBPM 5.6)",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The recipe is the artifact",
        "A programmatic quality gate",
        "Reproducibility",
        "The report is the quality document",
        "Variance and dissemination",
        "Where it sits",
        "See also"
      ],
      "created": "2026-08-29 00:12:47",
      "modified": "2026-08-29 00:12:47",
      "commits": 1
    }
  ],
  "_score": 7.531734309276549,
  "_indexed": true,
  "_nocasepkg": "weightflow",
  "_universes": [
    "jpferreira33"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.3.1",
      "date": "2026-10-16T07:32:03.000Z",
      "distro": "resolute",
      "commit": "b895824695e80544d2a044f3c56cddb804827e1f",
      "fileid": "https://r2.ropensci.org/7ecdf222de5df8b5f3085ecb407666f1948641f26c69f02855175333530bcb0b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jpferreira33/actions/runs/38867154612"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.3.1",
      "date": "2026-10-16T07:31:56.000Z",
      "distro": "resolute",
      "commit": "b895824695e80544d2a044f3c56cddb804827e1f",
      "fileid": "https://r2.ropensci.org/e4e5ff84418f31eeeaaa28b83fae56b4eec3fadafa954727d70b42f6524020c6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jpferreira33/actions/runs/38867154612"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.3.1",
      "date": "2026-10-16T07:47:43.000Z",
      "commit": "b895824695e80544d2a044f3c56cddb804827e1f",
      "fileid": "https://r2.ropensci.org/ed9eee06cdab76a4d2c0b3eee099b6cf962bee21b0e7f8e37249fb5f7e999bf9",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jpferreira33/actions/runs/38867154612"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "1.3.1",
      "date": "2026-10-16T07:49:36.000Z",
      "commit": "b895824695e80544d2a044f3c56cddb804827e1f",
      "fileid": "https://r2.ropensci.org/41582160b841ace15d9060c5e4ca8e589fe90719791997635fde38a602c8e409",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jpferreira33/actions/runs/38867154612"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.3.1",
      "date": "2026-10-16T07:31:45.000Z",
      "commit": "b895824695e80544d2a044f3c56cddb804827e1f",
      "fileid": "https://r2.ropensci.org/5481ceef9b3ab0a7e3a9c72d75f3ee9f9fce853bee07d043efa216a931a876a7",
      "status": "success",
      "buildurl": "https://github.com/r-universe/jpferreira33/actions/runs/38867154612"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.3.1",
      "date": "2026-10-16T07:31:01.000Z",
      "commit": "b895824695e80544d2a044f3c56cddb804827e1f",
      "fileid": "https://r2.ropensci.org/dbe41f6041f05364bf9f5eaf9e72b1a0b5c4bdea56bc2d65aa4c5936900ac08f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jpferreira33/actions/runs/38867154612"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.3.1",
      "date": "2026-10-16T07:31:06.000Z",
      "commit": "b895824695e80544d2a044f3c56cddb804827e1f",
      "fileid": "https://r2.ropensci.org/136dc87a504b3a74aa217df8f88691c2501b93ca88d35933877137215d022ea8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jpferreira33/actions/runs/38867154612"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.3.1",
      "date": "2026-10-16T07:31:17.000Z",
      "commit": "b895824695e80544d2a044f3c56cddb804827e1f",
      "fileid": "https://r2.ropensci.org/dbd2cff9df38bdd1cddf8d7e29fbf703f652bf3f13d0aec751dad465825761d8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jpferreira33/actions/runs/38867154612"
    }
  ]
}