BuSuCo: Business Survey Sample Coordination

Johannes Straubinger and Ralf Münnich

29 July 2026

Introduction

The BuSuCo package provides functions for coordinating survey samples of businesses across multiple surveys and time periods. Business survey coordination aims to control the overlap between consecutive samples of the same survey and across different surveys while managing the response burden on enterprises.

Background

Conducting multiple business surveys requires the following to be addressed:

Main Functions

Core Coordination Algorithms

The package implements four different business sample coordination algorithms:

Each algorithm has its own approach to handling response burden, rotation schemes, and simultaneous samples for different surveys. Small modifications have been made to each of them by Straubinger (2025).

Data Generation

Supporting Functions

Basic Workflow

Step 1: Generate or Load Data

library(BuSuCo)

# Generate synthetic business data
DATA <- Gen.Data(
  N = 1000,
  periods = 5,
  D = 2,
  D.probs = c(0.8, 0.2),
  H = 3,
  borders = c(100, 500),
  corr.B.U = 0.75
)

Step 2: Define Survey Relevance

# Define which enterprises are relevant for each survey
Sur_rel <- Survey.relevance(
  DATA,
  periods = 5,
  years = c(1, 2),
  domains.survey = list(1:2, 1),
  ge.or.less = c("ge", "l"),
  TO.or.EM = c("TO", "EM"),
  size.class = c(0, 5)
)

Step 3: Create Strata

# Stratify the population
strat <- Stratify(
  DATA,
  Survey.relevant = Sur_rel,
  periods = 5,
  years = c(1, 2),
  TO.or.EM = c("TO", "EM"),
  strata.TO = c(500),
  strata.EM = c(10)
)

Step 4: Draw Coordinated Samples

# Apply Dutch BSC algorithm for period 1
result <- Dutch.BSC(
  DATA = DATA,
  period = 1,
  sf = c(0.2, 0.5),        # Sampling fractions
  rf = c(0.5, 1),          # Rotation fractions
  years = c(1, 2),         # Survey periodicity
  chi_S = c(0.5, 2),       # Response burden in hours
  survey.prio = 1:2,       # Survey priority order
  burden.periods = 5,
  seed = 123,
  Survey.relevant = Sur_rel,
  stratification = strat
)

# Use updated DATA for next period
DATA <- result$DATA
in_sample <- result$in.sample

Algorithm Comparison

Dutch Algorithm

The Modified Dutch Business Sample Coordination Algorithm achieves coordination via ordering the data according to the values of a customisable burden indicator.

French Algorithm

The Modified French Business Sample Coordination Algorithm uses a theoretical sample inclusion indicator which is determined through a beta-distribution.

Norwegian Algorithm

The Modified Norwegian Business Sample Coordination Algorithm achieves coordination by using two separate burden indicators, one based on the total number of draws, the other one based on the number of consecutive inclusion or pause periods.

Swiss Algorithm

The Modified Swiss Business Sample Coordination Algorithm supports interval-based coordination across periods for sophisticated longitudinal sample coordination.

Burden Weights

Some of the abovementioned algorithms contain a burden score which can be customised. For this purpose, the following parameters are available (see Straubinger, 2025, pp.48ff. for details): - Stratum size weight (alpha) - Enterprise size weight (vita) - Pause duration weight (ggamma)

References

License

This package is licensed under GPL (>= 3).

mirror server hosted at Truenetwork, Russian Federation.