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_factsbundle.- 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