37 lines
1.9 KiB
Zig
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;
|