pub struct ReconcilingItem {
pub description: String,
pub difference_area: DifferenceArea,
pub net_income_impact: Decimal,
pub equity_impact: Decimal,
pub asset_impact: Decimal,
pub liability_impact: Decimal,
pub explanation: String,
}Expand description
Individual reconciling item.
Fields§
§description: StringDescription of the adjustment.
difference_area: DifferenceAreaDifference area.
net_income_impact: DecimalImpact on net income.
equity_impact: DecimalImpact on equity.
asset_impact: DecimalImpact on assets.
liability_impact: DecimalImpact on liabilities.
explanation: StringDetailed explanation.
Implementations§
Source§impl ReconcilingItem
impl ReconcilingItem
Sourcepub fn new(
description: impl Into<String>,
difference_area: DifferenceArea,
net_income_impact: Decimal,
) -> Self
pub fn new( description: impl Into<String>, difference_area: DifferenceArea, net_income_impact: Decimal, ) -> Self
Create a new reconciling item with a simplified equity-impact assumption.
§Limitation — equity_impact approximation
This constructor sets equity_impact = net_income_impact, assuming that every
income-statement difference flows through to retained earnings. This is correct
for the majority of US GAAP ↔ IFRS differences (e.g. revenue recognition timing,
inventory cost-flow assumptions, lease capitalisation under IFRS 16 vs. ASC 842).
However, several GAAP/IFRS differences bypass the income statement and are
recognised directly in Other Comprehensive Income (OCI), causing
equity_impact ≠ net_income_impact:
| Difference area | US GAAP treatment | IFRS treatment |
|---|---|---|
| Pension remeasurements | Amortised through P&L (corridor method) | OCI only (IAS 19R) |
| Unrealised FX on monetary items | P&L | P&L or OCI depending on hedge designation |
| Available-for-sale / FVOCI equity securities | OCI | OCI (IFRS 9) |
| Revaluation surplus (PP&E / intangibles) | Not permitted | OCI (IAS 16/38) |
Callers that generate OCI-related reconciling items must override
equity_impact after construction and set net_income_impact to Decimal::ZERO
(or to only the reclassification portion).
Trait Implementations§
Source§impl Clone for ReconcilingItem
impl Clone for ReconcilingItem
Source§fn clone(&self) -> ReconcilingItem
fn clone(&self) -> ReconcilingItem
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ReconcilingItem
impl Debug for ReconcilingItem
Source§impl<'de> Deserialize<'de> for ReconcilingItem
impl<'de> Deserialize<'de> for ReconcilingItem
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for ReconcilingItem
impl RefUnwindSafe for ReconcilingItem
impl Send for ReconcilingItem
impl Sync for ReconcilingItem
impl Unpin for ReconcilingItem
impl UnsafeUnpin for ReconcilingItem
impl UnwindSafe for ReconcilingItem
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.