zfin/src/analytics/reconcile.zig
Emil Lerch a107008b35
All checks were successful
Generic zig build / build (push) Successful in 4m55s
Generic zig build / publish-macos (push) Successful in 11s
Generic zig build / deploy (push) Successful in 19s
separate ratio suggestion calculation from display, export types for others to use
2026-08-02 09:25:55 -07:00

37 lines
1.9 KiB
Zig

//! Portfolio-vs-brokerage reconciliation: pure compute lifted out of
//! the `audit` command so it is unit-testable and reusable (finrev
//! consumes it too). The ANSI renderers stay in `commands/audit/`.
//!
//! - `common` broker-agnostic comparison engine (compareAccounts,
//! cdLotAllowance, findAbsentAccounts, ...)
//! - `schwab` Schwab positions CSV + summary reconcilers
//! - `fidelity` Fidelity positions CSV reconciler
pub const common = @import("reconcile/common.zig");
pub const schwab = @import("reconcile/schwab.zig");
pub const fidelity = @import("reconcile/fidelity.zig");
// ── Flat convenience re-exports ──────────────────────────────
pub const value_tolerance = common.value_tolerance;
pub const cash_tolerance = common.cash_tolerance;
pub const AccountValueExpectation = common.AccountValueExpectation;
pub const SymbolComparison = common.SymbolComparison;
pub const AccountComparison = common.AccountComparison;
pub const AbsentAccount = common.AbsentAccount;
pub const cdLotAllowance = common.cdLotAllowance;
pub const accountValueExpectation = common.accountValueExpectation;
pub const compareAccounts = common.compareAccounts;
pub const hasAccountDiscrepancies = common.hasAccountDiscrepancies;
pub const presentNumbers = common.presentNumbers;
pub const findAbsentAccounts = common.findAbsentAccounts;
pub const RatioSuggestion = common.RatioSuggestion;
pub const ratioSuggestions = common.ratioSuggestions;
pub const SchwabAccountComparison = schwab.SchwabAccountComparison;
pub const compareSchwabSummary = schwab.compareSchwabSummary;
pub const reconcileCsv = schwab.reconcileCsv;
pub const reconcileSummary = schwab.reconcileSummary;
pub const hasSchwabDiscrepancies = schwab.hasSchwabDiscrepancies;
pub const summaryRatioSuggestions = schwab.summaryRatioSuggestions;
pub const reconcileFidelity = fidelity.reconcile;