XML 91 R74.htm IDEA: XBRL DOCUMENT v2.4.1.9
Accumulated other comprehensive loss (Details 1) (CAD)
In Millions, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Accumulated Other Comprehensive Income (Loss) [Line Items]      
Accumulated Other Comprehensive Income (Loss), before Tax Opening Balance (2,040)us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1 (3,861)us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1 (3,316)us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
Accumulated other comprehensive loss - Opening Balance (1,850)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax (3,257)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax (2,839)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
Other Comprehensive Income (Loss) Before Reclassifications [Abstract]      
Actuarial gain (loss) arising during the year - pre-tax (1,117)us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansNetUnamortizedGainLossArisingDuringPeriodBeforeTax 1,544us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansNetUnamortizedGainLossArisingDuringPeriodBeforeTax (660)us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansNetUnamortizedGainLossArisingDuringPeriodBeforeTax
Actuarial gain (loss) arising during the year - net of tax (817)us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansNetUnamortizedGainLossArisingDuringPeriodNetOfTax 1,132us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansNetUnamortizedGainLossArisingDuringPeriodNetOfTax (484)us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansNetUnamortizedGainLossArisingDuringPeriodNetOfTax
Prior service cost from plan amendment arising during the year - pre-tax (4)us-gaap_OtherComprehensiveIncomeDefinedBenefitPlanNetPriorServiceCostCreditArisingDuringPeriodBeforeTax   (6)us-gaap_OtherComprehensiveIncomeDefinedBenefitPlanNetPriorServiceCostCreditArisingDuringPeriodBeforeTax
Prior service cost from plan amendment arisiing during the year - net of tax (3)us-gaap_OtherComprehensiveIncomeDefinedBenefitPlanNetPriorServiceCostsCreditArisingDuringPeriodNetOfTax   (4)us-gaap_OtherComprehensiveIncomeDefinedBenefitPlanNetPriorServiceCostsCreditArisingDuringPeriodNetOfTax
Unrealized Foreign Exchange Gain/(Loss) On Translation Of Net Investment In Foreign Operations - pre-tax 644cni_UnrealizedForeignExchangeGainLossOnTranslationOfNetInvestmentInForeignOperationsBeforeTax 440cni_UnrealizedForeignExchangeGainLossOnTranslationOfNetInvestmentInForeignOperationsBeforeTax (128)cni_UnrealizedForeignExchangeGainLossOnTranslationOfNetInvestmentInForeignOperationsBeforeTax
Unrealized Foreign Exchange Gain/(Loss) On Translation Of Net Investment In Foreign Operations - net of tax 648cni_UnrealizedForeignExchangeGainLossOnTranslationOfNetInvestmentInForeignOperationsNetOfTax 447cni_UnrealizedForeignExchangeGainLossOnTranslationOfNetInvestmentInForeignOperationsNetOfTax (126)cni_UnrealizedForeignExchangeGainLossOnTranslationOfNetInvestmentInForeignOperationsNetOfTax
Translation US Dollar Denominated Long Term Debt Hedge Net Investment Pre Tax (569)cni_TranslationUSDollarDenominatedLongTermDebtHedgeNetInvestmentPreTax (394)cni_TranslationUSDollarDenominatedLongTermDebtHedgeNetInvestmentPreTax 123cni_TranslationUSDollarDenominatedLongTermDebtHedgeNetInvestmentPreTax
Translation US Dollar Denominated Long Term Debt Hedge Net Investment Net Tax (496)cni_TranslationUSDollarDenominatedLongTermDebtHedgeNetInvestmentNetTax (342)cni_TranslationUSDollarDenominatedLongTermDebtHedgeNetInvestmentNetTax 104cni_TranslationUSDollarDenominatedLongTermDebtHedgeNetInvestmentNetTax
Amounts Reclassified From Accumulated Other Comprehensive Income (Loss) [Abstract]      
Amortization of gain on treasury lock - pre-tax (1)us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesBeforeTax 0us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesBeforeTax 0us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesBeforeTax
Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI on Derivatives, Net of Tax (1)us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax    
Amortization of net actuarial loss - pre-tax 120us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetGainLossBeforeTax [1] 226us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetGainLossBeforeTax [1] 119us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetGainLossBeforeTax [1]
Amortization of net actuarial loss - net of tax 88us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetGainLossNetOfTax 166us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetGainLossNetOfTax 87us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetGainLossNetOfTax
Amortization of prior service cost - pre-tax 6us-gaap_OtherComprehensiveIncomeLossAmortizationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetPriorServiceCostCreditBeforeTax [1] 5us-gaap_OtherComprehensiveIncomeLossAmortizationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetPriorServiceCostCreditBeforeTax [1] 7us-gaap_OtherComprehensiveIncomeLossAmortizationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetPriorServiceCostCreditBeforeTax [1]
Amortization of prior service cost - net of tax 4us-gaap_OtherComprehensiveIncomeLossAmortizationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetPriorServiceCostCreditNetOfTax 4us-gaap_OtherComprehensiveIncomeLossAmortizationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetPriorServiceCostCreditNetOfTax 5us-gaap_OtherComprehensiveIncomeLossAmortizationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetPriorServiceCostCreditNetOfTax
Other comprehensive income (loss) before income taxes (921)us-gaap_OtherComprehensiveIncomeLossBeforeTax 1,821us-gaap_OtherComprehensiveIncomeLossBeforeTax (545)us-gaap_OtherComprehensiveIncomeLossBeforeTax
Other comprehensive income loss tax (344)us-gaap_OtherComprehensiveIncomeLossTax 414us-gaap_OtherComprehensiveIncomeLossTax (127)us-gaap_OtherComprehensiveIncomeLossTax
Other comprehensive income (loss) (577)us-gaap_OtherComprehensiveIncomeLossNetOfTax 1,407us-gaap_OtherComprehensiveIncomeLossNetOfTax (418)us-gaap_OtherComprehensiveIncomeLossNetOfTax
Accumulated other comprehensive income (loss) - Closing (2,427)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax (1,850)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax (3,257)us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax
Accumulated Other Comprehensive Income (Loss), before Tax Closing Balance (2,961)us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1 (2,040)us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1 (3,861)us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
Derivative instruments [Member]      
Accumulated Other Comprehensive Income (Loss) [Line Items]      
Accumulated Other Comprehensive Income (Loss), before Tax Opening Balance 8us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_DerivativeMember
8us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_DerivativeMember
8us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_DerivativeMember
Amounts Reclassified From Accumulated Other Comprehensive Income (Loss) [Abstract]      
Amortization of gain on treasury lock - pre-tax (1)us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_DerivativeMember
[2]    
Other comprehensive income (loss) before income taxes (1)us-gaap_OtherComprehensiveIncomeLossBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_DerivativeMember
0us-gaap_OtherComprehensiveIncomeLossBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_DerivativeMember
0us-gaap_OtherComprehensiveIncomeLossBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_DerivativeMember
Accumulated Other Comprehensive Income (Loss), before Tax Closing Balance 7us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_DerivativeMember
8us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_DerivativeMember
8us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_DerivativeMember
Pension and other postretirement benefit plans [Member]      
Accumulated Other Comprehensive Income (Loss) [Line Items]      
Accumulated Other Comprehensive Income (Loss), before Tax Opening Balance (1,515)us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
(3,290)us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
(2,750)us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
Other Comprehensive Income (Loss) Before Reclassifications [Abstract]      
Actuarial gain (loss) arising during the year - pre-tax (1,117)us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansNetUnamortizedGainLossArisingDuringPeriodBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
1,544us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansNetUnamortizedGainLossArisingDuringPeriodBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
(660)us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansNetUnamortizedGainLossArisingDuringPeriodBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
Prior service cost from plan amendment arising during the year - pre-tax (4)us-gaap_OtherComprehensiveIncomeDefinedBenefitPlanNetPriorServiceCostCreditArisingDuringPeriodBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
  (6)us-gaap_OtherComprehensiveIncomeDefinedBenefitPlanNetPriorServiceCostCreditArisingDuringPeriodBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
Amounts Reclassified From Accumulated Other Comprehensive Income (Loss) [Abstract]      
Amortization of net actuarial loss - pre-tax 120us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetGainLossBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
226us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetGainLossBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
119us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetGainLossBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
Amortization of prior service cost - pre-tax 6us-gaap_OtherComprehensiveIncomeLossAmortizationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetPriorServiceCostCreditBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
5us-gaap_OtherComprehensiveIncomeLossAmortizationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetPriorServiceCostCreditBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
7us-gaap_OtherComprehensiveIncomeLossAmortizationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetPriorServiceCostCreditBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
Other comprehensive income (loss) before income taxes (995)us-gaap_OtherComprehensiveIncomeLossBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
1,775us-gaap_OtherComprehensiveIncomeLossBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
(540)us-gaap_OtherComprehensiveIncomeLossBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
Accumulated Other Comprehensive Income (Loss), before Tax Closing Balance (2,510)us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
(1,515)us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
(3,290)us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_PensionAndOtherPostretirementPlansCostsMember
Foreign currency translation adj [Member]      
Accumulated Other Comprehensive Income (Loss) [Line Items]      
Accumulated Other Comprehensive Income (Loss), before Tax Opening Balance (533)us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ForeignExchangeMember
(579)us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ForeignExchangeMember
(574)us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ForeignExchangeMember
Other Comprehensive Income (Loss) Before Reclassifications [Abstract]      
Unrealized Foreign Exchange Gain/(Loss) On Translation Of Net Investment In Foreign Operations - pre-tax 644cni_UnrealizedForeignExchangeGainLossOnTranslationOfNetInvestmentInForeignOperationsBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ForeignExchangeMember
440cni_UnrealizedForeignExchangeGainLossOnTranslationOfNetInvestmentInForeignOperationsBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ForeignExchangeMember
(128)cni_UnrealizedForeignExchangeGainLossOnTranslationOfNetInvestmentInForeignOperationsBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ForeignExchangeMember
Translation US Dollar Denominated Long Term Debt Hedge Net Investment Pre Tax (569)cni_TranslationUSDollarDenominatedLongTermDebtHedgeNetInvestmentPreTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ForeignExchangeMember
(394)cni_TranslationUSDollarDenominatedLongTermDebtHedgeNetInvestmentPreTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ForeignExchangeMember
123cni_TranslationUSDollarDenominatedLongTermDebtHedgeNetInvestmentPreTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ForeignExchangeMember
Amounts Reclassified From Accumulated Other Comprehensive Income (Loss) [Abstract]      
Other comprehensive income (loss) before income taxes 75us-gaap_OtherComprehensiveIncomeLossBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ForeignExchangeMember
46us-gaap_OtherComprehensiveIncomeLossBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ForeignExchangeMember
(5)us-gaap_OtherComprehensiveIncomeLossBeforeTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ForeignExchangeMember
Accumulated Other Comprehensive Income (Loss), before Tax Closing Balance (458)us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ForeignExchangeMember
(533)us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ForeignExchangeMember
(579)us-gaap_AccumulatedOtherComprehensiveIncomeLossBeforeTax1
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ForeignExchangeMember
Tax recovery (expense) [Member]      
Accumulated Other Comprehensive Income (Loss) [Line Items]      
Accumulated Other Comprehensive Income Loss Tax Opening balance 190cni_AccumulatedOtherComprehensiveIncomeLossTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
604cni_AccumulatedOtherComprehensiveIncomeLossTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
477cni_AccumulatedOtherComprehensiveIncomeLossTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
Other Comprehensive Income (Loss) Before Reclassifications [Abstract]      
Actuarial gain (loss) arising during the year - tax 300us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansNetUnamortizedGainLossArisingDuringPeriodTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
(412)us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansNetUnamortizedGainLossArisingDuringPeriodTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
176us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansNetUnamortizedGainLossArisingDuringPeriodTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
Prior service cost from plan amendment arising during the year - tax 1us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansBenefitPlanImprovementTaxEffect
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
  2us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansBenefitPlanImprovementTaxEffect
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
Unrealized Foreign Exchange Gain/(Loss) On Translation Of Net Investment In Foreign Operations - tax 4cni_UnrealizedForeignExchangeGainLossOnTranslationOfNetInvestmentInForeignOperationsTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
7cni_UnrealizedForeignExchangeGainLossOnTranslationOfNetInvestmentInForeignOperationsTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
2cni_UnrealizedForeignExchangeGainLossOnTranslationOfNetInvestmentInForeignOperationsTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
Translation US Dollar Denominated Long Term Debt Hedge Net Investment Tax 73cni_TranslationUSDollarDenominatedLongTermDebtHedgeNetInvestmentTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
52cni_TranslationUSDollarDenominatedLongTermDebtHedgeNetInvestmentTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
(19)cni_TranslationUSDollarDenominatedLongTermDebtHedgeNetInvestmentTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
Amounts Reclassified From Accumulated Other Comprehensive Income (Loss) [Abstract]      
Amortization of gain on treasury lock - tax 0us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
   
Amortization of net actuarial loss - tax (32)us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetGainLossTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
[3] (60)us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetGainLossTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
[3] (32)us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetGainLossTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
[3]
Amortization of prior service cost - tax (2)us-gaap_OtherComprehensiveIncomeLossAmortizationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetPriorServiceCostCreditTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
[3] (1)us-gaap_OtherComprehensiveIncomeLossAmortizationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetPriorServiceCostCreditTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
[3] (2)us-gaap_OtherComprehensiveIncomeLossAmortizationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetPriorServiceCostCreditTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
[3]
Other comprehensive income loss tax 344us-gaap_OtherComprehensiveIncomeLossTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
(414)us-gaap_OtherComprehensiveIncomeLossTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
127us-gaap_OtherComprehensiveIncomeLossTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
Accumulated Other Comprehensive Income Loss Tax Closing balance 534cni_AccumulatedOtherComprehensiveIncomeLossTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
190cni_AccumulatedOtherComprehensiveIncomeLossTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
604cni_AccumulatedOtherComprehensiveIncomeLossTax
/ us-gaap_StatementEquityComponentsAxis
= cni_TaxRecoveryExpenseMember
[1] Reclassified to Labor and fringe benefits on the Consolidated Statement of Income and included in components of net periodic benefit cost. See Note 12 - Pensions and other postretirement benefits.
[2] Related to treasury lock transactions settled in prior years, which are being amortized over the terms of the related debt to Interest expense on the Consolidated Statement of Income.
[3] Included in Income tax expense on the Consolidated Statement of Income.