XML 58 R68.htm IDEA: XBRL DOCUMENT v2.4.1.9
Stock Plans - Stock based compensation plans (Details) (CAD)
In Millions, except Per Share data, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Total compensation expense and related tax benefit for all plans [Abstract]      
Total stock-based compensation expense 161us-gaap_AllocatedShareBasedCompensationExpense 136us-gaap_AllocatedShareBasedCompensationExpense 105us-gaap_AllocatedShareBasedCompensationExpense
Tax benefit recognized in income 43us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense 35us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense 25us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
Share based payment award, options, additional disclosures [Abstract]      
Entity's closing stock price at end of period (in dollars per share) 80.02cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardMarketPriceOfStockAtPeriodEnd    
Total intrinsic value 50us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue 45us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue 167us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
Cash received upon exercise of options 25us-gaap_EmployeeServiceShareBasedCompensationCashReceivedFromExerciseOfStockOptions 28us-gaap_EmployeeServiceShareBasedCompensationCashReceivedFromExerciseOfStockOptions 102us-gaap_EmployeeServiceShareBasedCompensationCashReceivedFromExerciseOfStockOptions
Related excess tax benefit realized 5us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitRealizedFromExerciseOfStockOptions 3us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitRealizedFromExerciseOfStockOptions 16us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitRealizedFromExerciseOfStockOptions
Stock price volatility [Abstract]      
Amount of increase in Company's stock price used for sensitivity analysis which would impact stock based compensation expense for cash settlement awards 1cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardIncreaseEntityStockPrice    
Amount of increase in Company's stock based compensation expense if stock price increased by $1 2cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardIncreaseStockBasedCompensationExpenseImpact    
Amount of decrease in Company's stock price used for sensitivity analysis which would reduce stock based compensation expense for cash settlement awards 1cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardDecreaseEntityStockPrice    
Amount of reduction in Company's stock based compensation expense if stock price decreased by $1 3cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardDecreaseStockBasedCompensationExpenseImpact    
Cash Settlement Awards [Member]      
Total compensation expense and related tax benefit for all plans [Abstract]      
Total stock-based compensation expense 150us-gaap_AllocatedShareBasedCompensationExpense
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
127us-gaap_AllocatedShareBasedCompensationExpense
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
95us-gaap_AllocatedShareBasedCompensationExpense
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested [Roll Forward]      
Modification nonvested (in shares) 0cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberModification
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
[1]    
Cash Settlement Awards [Member] | Performance Share Units (PSUs) [Member]      
Total compensation expense and related tax benefit for all plans [Abstract]      
Total stock-based compensation expense 117us-gaap_AllocatedShareBasedCompensationExpense
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
92us-gaap_AllocatedShareBasedCompensationExpense
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
76us-gaap_AllocatedShareBasedCompensationExpense
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
Units granted during the period (in shares) 0.8us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
0.8us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
0.9us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
The number of years in the plan period prior to payout of the units (in years) 3cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardCashPayoutPlanPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
   
Minimum performance vesting factor range, based on return on invested capital (in hundredths) 0.00%cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPercentageMinimum
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
   
Maximum performance vesting factor range, based on return on invested capital (in hundredths) 150.00%cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPercentageMaximum
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
   
Number of last months in period for calculating average stock price used in determining if payout condition is met (in months) 3cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfLastMonthsInPeriodCalculateAverageStockPrice
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
   
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested [Roll Forward]      
Beginning shares outstanding nonvested (in shares) 1.7us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
   
Units granted during the period (in shares) 0.8us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
0.8us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
0.9us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
Modification nonvested (in shares) (0.9)cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberModification
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
[1]    
Share based compensation plan units forfeited in period 0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
   
Vested during year (in shares) (0.9)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
   
Ending shares outstanding non vested (in shares) 0.7us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
1.7us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
 
Share-based compensation arrangement by share-based payment award, equity instruments other than options, vested [Roll Forward]      
Beginning shares outstanding vested (in shares) 0.9cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
   
Granted (Payout) (in shares) (0.9)cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsedAndPayouts
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
   
Modification vested (in shares) 0cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedNumberModification
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
[1]    
Units forfeited (in shares) 0cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsSharesForfeitedInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
   
Vested (in shares) 0.9cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodVested
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
   
Ending shares outstanding vested 0.9cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
0.9cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
 
Cash Settlement Awards [Member] | Voluntary Incentive Deferral Plan [Member]      
Total compensation expense and related tax benefit for all plans [Abstract]      
Total stock-based compensation expense 33us-gaap_AllocatedShareBasedCompensationExpense
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
35us-gaap_AllocatedShareBasedCompensationExpense
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
19us-gaap_AllocatedShareBasedCompensationExpense
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
Units granted during the period (in shares) 0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
   
The number of years in the plan period over which amounts elected in units will vest 4 years    
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested [Roll Forward]      
Beginning shares outstanding nonvested (in shares) 0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
   
Units granted during the period (in shares) 0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
   
Share based compensation plan units forfeited in period 0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
   
Vested during year (in shares) 0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
   
Ending shares outstanding non vested (in shares) 0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
 
Share-based compensation arrangement by share-based payment award, equity instruments other than options, vested [Roll Forward]      
Beginning shares outstanding vested (in shares) 2.3cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
   
Granted (Payout) (in shares) (0.1)cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsedAndPayouts
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
   
Modification vested (in shares) (1.7)cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedNumberModification
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
[1]    
Units forfeited (in shares) 0cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsSharesForfeitedInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
   
Vested (in shares) 0cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodVested
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
   
Ending shares outstanding vested 0.5cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
2.3cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_CashSettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
 
Stock Option [Member]      
Total compensation expense and related tax benefit for all plans [Abstract]      
Total stock-based compensation expense 9us-gaap_AllocatedShareBasedCompensationExpense
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
9us-gaap_AllocatedShareBasedCompensationExpense
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
10us-gaap_AllocatedShareBasedCompensationExpense
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
Number of units remained authorized for future issuance under plan (in shares) 19.2us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
   
The number of years in the plan period over which amounts elected in units will vest 4 years    
Share Based Compensation Arrangement By Share Based Payment Award Options General Disclosures [Abstract]      
Maximum period from grant date in which stock options are exercisable (in years) 10 years    
Period of time (in months) options are generally not exercisable 12    
Total number of conventional stock options outstanding at end of period (in shares) 7.5cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardConventionalOptionsOutstandingNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
   
Conventional stock options company granted to designated senior management employees during period (in shares) 1.0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
1.1us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
1.2us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
Share base payment award, options outstanding [Roll Forward]      
Options outstanding at beginning of period (in shares) 7.7us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
[2]    
Granted (in shares) 1.0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
1.1us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
1.2us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
Forfeitures (in shares) 0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
   
Exercised (in shares) (1.2)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
   
Options outstanding at end of period (in shares) 7.5us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
[2] 7.7us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
[2]  
Options exercisable at end of period (in shares) 5.0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
[2]    
Share base payment award, options outstanding-Nonvested [Roll Forward]      
Nonvested options outstanding at beginning of period (in shares) 2.7cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNonvestedNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
[2]    
Granted (in shares) 1.0cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodNonvested
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
   
Forfeited (in shares) 0us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
   
Vested (in shares) (1.2)cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedInPeriod
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
   
Nonvested options outstanding at end of period (in shares) 2.5cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNonvestedNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
[2] 2.7cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNonvestedNumber
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
[2]  
Share based payment award, options, additional disclosures [Abstract]      
Weighted average exercise price per share of options outstanding at beginning of period 30.97us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
[2]    
Weighted average exercise price per share of options granted during period 58.74us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
   
Weighted average exercise price per share of options forfeited during period 0cni_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeitedInPeriodWeightedAverageExercisePrice
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
   
Weighted average exercise price per share of options exercised during period 22.97us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
   
Weighted average exercise price per share of options outstanding at end of period 37.37us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
[2] 30.97us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
[2]  
Weighted average exercise price per share of options exercisable at end of period 30.31us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
[2]    
Weighted average grant date fair value per share of nonvested options outstanding at beginning of period (in dollars per share) 7.89cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonvestedOptionsWeightedAverageGrantDateFairValue
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
[2]    
Weighted average grant date fair value per share of nonvested options granted during the period (in dollars per share) 11.09cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodNonvestedWeightedAverageGrantDateFairValue
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
   
Weighted average grant date fair value of non-vested options forfeited 0us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
   
Weighted average grant date fair value per share of nonvested options that vested during the period (in dollars per share) 7.59cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonvestedOptionsVestedInPeriodWeightedAverageGrantDateFairValue
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
   
Weighted average grant date fair value per share of options outstanding at end of period (in dollars per share) 9.25cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonvestedOptionsWeightedAverageGrantDateFairValue
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
[2] 7.89cni_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonvestedOptionsWeightedAverageGrantDateFairValue
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= us-gaap_StockOptionMember
[2]  
Equity Settlement Awards [Member]      
Total compensation expense and related tax benefit for all plans [Abstract]      
Total stock-based compensation expense 11us-gaap_AllocatedShareBasedCompensationExpense
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_EquitySettlementAwardsMember
9us-gaap_AllocatedShareBasedCompensationExpense
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_EquitySettlementAwardsMember
10us-gaap_AllocatedShareBasedCompensationExpense
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_EquitySettlementAwardsMember
Equity Settlement Awards [Member] | Performance Share Units (PSUs) [Member]      
Total compensation expense and related tax benefit for all plans [Abstract]      
Total stock-based compensation expense 2us-gaap_AllocatedShareBasedCompensationExpense
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_EquitySettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
0us-gaap_AllocatedShareBasedCompensationExpense
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_EquitySettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
0us-gaap_AllocatedShareBasedCompensationExpense
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_EquitySettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
Modification SBC Plan Number 2013 grant yr 0.5cni_ModificationStockBasedCompensationPlanNumber1
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_EquitySettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
   
Modification SBC Plan Number 2014 grant yr 0.4cni_ModificationStockBasedCompensationPlanNumber2
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_EquitySettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
   
Modification Stock Based Compensation Plan Value1 60cni_ModificationStockBasedCompensationPlanValue1
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_EquitySettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
   
Modification Stock Based Compensation Plan Number Employee 133cni_ModificationStockBasedCompensationPlanNumberEmployee
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_EquitySettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_PerformanceShareUnitPSUMember
   
Equity Settlement Awards [Member] | Voluntary Incentive Deferral Plan [Member]      
Total compensation expense and related tax benefit for all plans [Abstract]      
Modification Stock Based Compensation Plan Value1 132cni_ModificationStockBasedCompensationPlanValue1
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_EquitySettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
   
Modification SBC Plan DSU Number 1.7cni_ModificationStockBasedCompensationPlanNumber3
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_EquitySettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
   
Modification Stock Based Compensation Plan Number Employee 104cni_ModificationStockBasedCompensationPlanNumberEmployee
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_EquitySettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
   
Aggregate Intrinsic Value Of Vested DSUs 138cni_AggregateIntrinsicValueOfVestedDSUS
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardAwardTypeAxis
= cni_EquitySettlementAwardsMember
/ cni_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPlanNameAxis
= cni_VoluntaryIncentiveDeferralPlanMember
   
[1] On December 9, 2014, certain cash settled awards were modified to settle in common shares of the Company. From the modification date, these units are accounted for as equity settled awards.
[2] Stock options with a US dollar exercise price have been translated to Canadian dollars using the foreign exchange rate in effect at the balance sheet date.