pub struct CguImpairmentTest {
pub cgu_id: String,
pub test_date: NaiveDate,
pub allocated_goodwill: Decimal,
pub other_carrying: Decimal,
pub fair_value_less_costs: Decimal,
pub value_in_use: Decimal,
pub currency: String,
}Expand description
Annual CGU-level goodwill impairment test under IAS 36 § 10.
Inputs to the test are the CGU’s carrying amount (including allocated goodwill + the other assets of the unit), and the recoverable amount components — fair value less costs of disposal and value in use. IAS 36 § 18 says recoverable = max of the two.
Fields§
§cgu_id: StringCGU being tested.
test_date: NaiveDatePeriod-end test date (IAS 36 § 10 — at least annually).
allocated_goodwill: DecimalTotal goodwill allocated to this CGU at test date. Always
non-negative. Sum of the
GoodwillAllocation::goodwill_amount entries that land
on this CGU, net of prior-period impairment that reduced the
allocated goodwill (IAS 36 § 124 prohibits reversal of
goodwill impairments).
other_carrying: DecimalCarrying amount of the other assets of the CGU (everything except the allocated goodwill) immediately before this test. Always non-negative.
fair_value_less_costs: DecimalFair value of the CGU less costs of disposal at the test date.
value_in_use: DecimalValue in use of the CGU at the test date (typically the present value of the next 5 years of net cash flows + a terminal value, discounted at the WACC).
currency: StringGroup presentation currency.
Implementations§
Source§impl CguImpairmentTest
impl CguImpairmentTest
Sourcepub fn run(&self) -> CguImpairmentResult
pub fn run(&self) -> CguImpairmentResult
Run the IAS 36 § 18 / § 104 test, producing a
CguImpairmentResult. Pure function — no I/O, no global
state.
- Carrying total =
allocated_goodwill + other_carrying. - Recoverable amount =
max(fair_value_less_costs, value_in_use). - Total loss =
max(0, carrying − recoverable). - Allocation (IAS 36 § 104): first to goodwill (capped at
allocated_goodwill), then the residual to other assets.
Trait Implementations§
Source§impl Clone for CguImpairmentTest
impl Clone for CguImpairmentTest
Source§fn clone(&self) -> CguImpairmentTest
fn clone(&self) -> CguImpairmentTest
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 CguImpairmentTest
impl Debug for CguImpairmentTest
Source§impl<'de> Deserialize<'de> for CguImpairmentTest
impl<'de> Deserialize<'de> for CguImpairmentTest
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>,
Source§impl PartialEq for CguImpairmentTest
impl PartialEq for CguImpairmentTest
Source§fn eq(&self, other: &CguImpairmentTest) -> bool
fn eq(&self, other: &CguImpairmentTest) -> bool
self and other values to be equal, and is used by ==.