Skip to contents

Produces a source-aware dry-run report. Accepted rows, retained runtime conflicts, rejected rows, quarantine candidates, and audit-only facts stay distinct. This function never creates or modifies a snapshot.

Usage

ledgr_facts_validate(
  facts,
  bars_df,
  instruments_df = NULL,
  invalid_observations = c("error", "quarantine")
)

Arguments

facts

A ledgr_facts bundle.

bars_df

Bars intended for ledgr_snapshot_from_df().

instruments_df

Optional instrument master intended for the snapshot.

invalid_observations

Either "error" or "quarantine".

Value

A ledgr_facts_report object with summary, facts, and observations tibbles plus a logical can_seal field.

Articles

Point-in-time universe workflow: vignette("survivorship-bias", package = "ledgr") system.file("doc", "survivorship-bias.html", package = "ledgr")

Errors

Invalid or mutated bundles raise ledgr_invalid_facts. Snapshot creation raises ledgr_availability_validation_failed with this report attached when accepted input cannot be sealed.

Examples

sessions <- data.frame(
  session_date = as.Date("2020-01-01") + 0:1,
  status = c("closed", "open"),
  session_open = c(NA, "09:30:00"),
  session_close = c(NA, "16:00:00"),
  knowledge_time = as.POSIXct("2019-12-31", tz = "UTC")
)
facts <- ledgr_facts(ledgr_facts_sessions(sessions, "example", timezone = "UTC"))
bars <- data.frame(
  instrument_id = "AAA",
  ts_utc = as.Date("2020-01-02"),
  open = 10, high = 11, low = 9, close = 10
)
ledgr_facts_validate(facts, bars)
#> ledgr facts validation
#> Can seal: yes
#> # A tibble: 7 × 2
#>   category                              n
#>   <chr>                             <int>
#> 1 facts_accepted                        2
#> 2 facts_runtime_conflict                0
#> 3 facts_audit_only                      0
#> 4 facts_rejected                        0
#> 5 observations_accepted                 1
#> 6 observations_quarantine_candidate     0
#> 7 observations_rejected                 0