Professional Documents
Culture Documents
ByJohnMcKeeandTomMornini
Thisisadoubleentryaccountingprimerforsoftwaredeveloperswhowritecodetotrack
money.Itdistillstheessenceofaccountinginanefforttohelpdevelopersbridgethe
vocabularyandconceptualdividethatexistsbetweenengineeringandfinance.There's
nothingspecificallyaboutSubledgeruntilAccountingforDevelopers103.
Background
Bothofushaveknownforaverylongtimethataccountantsuseddoubleentry
accounting(hereafteraccounting)totrackmoney.Weknewitwasthelanguageof
business,andthatWarrenBuffettconsidersitessential.
Eventhoughweknewthesethings,weneveronceconsideredusingitasatechniquein
softwarethatwewrote.It'sprobablyagoodthing:everythingwethoughtweunderstood
weactuallymisunderstood!
HavingimplementedSubledger,we'reamazedbyaccounting'seleganceandsimplicity.
Ourgoalforthisseriesofdocumentsistoallowyoutoappreciateitaswedo.
History
Ifyoulookatorusemodernaccountingsoftwareit'seasytooverlooktheeleganceand
simplicity.Thesepackagesmakeaccountingappearbroad,deepandmysterious.
Architecturally,mostofthemappeartobebusinessdocumentdatabasesthatproduce
accountingreports,asopposedtopureaccountingsystems.Infact,themostpopular
packagesviolatesomeofthebasictenetsofaccountinginanefforttomakethem
"simpler"touse.
LucaPacioli,oftenreferredtoas"TheFatherofAccounting,"wrote,printedand
distributedthefirstcompletedescriptionofdoubleentryaccountingin1494.Itwas
writteninvernacularItalian,whichmadeitwidelyconsumable.
Itistragicthattheactualcreatorofaccounting,whichisknowntohavebeeninusefor
atleast2centuries(!)beforeLucadescribedit,willlikelyneverreceivetherecognition
thatshe/hedeserves.Somehistoriansbelievethatitsuseleddirectlytothe
Renaissancebyincreasingtrust,allowingmorecapitaltoberaised,andimprovingthe
efficiencyofputtingthecapitaltowork.
Luca'sParticularisdeComputisetScripturis(DetailsofCalculationandRecording)was
anappendixtothemathtextSummadeArithmetica,Geometria,Proportioniet
Proportionalit(SummaryofArithmetic,Geometry,Proportion,andProportionality).It's
hardtoimaginethatonebookintroducedAlgebra,Geometry,andAccountingto
Europe!
LucamentoredLeonardodaVinci,whodrewtheillustrationsoftheregularsolidsused
inanotherPacioliwork,DeDivinaProportione(TheDivineProportion).Apparently,
geniusreallydoeslovecompany!
Thefundamentalsofaccountingpredate,yetbearstrikingresemblanceto,Newton's
ThirdLawofMotion:"Foreveryaction,thereisanequalandoppositereaction,"and
Lavoisier'sLawofConservationofMass:"Masscanneitherbecreatednordestroyed,
onlyrearrangedorconvertedtootherforms."
Accountingisa700+yearoldtechnology.Howmanytechnologieshavesurvivedthat
lengthoftime,letaloneflourishunchanged!Accountingistheuniversallyaccepted
goldstandardfortrackingtheflowofvalue,worksforeverybusinessmodel,and
hasnoapparentsuccessors.
Toputitsdurabilityintoperspective,doubleentryaccountingwascreatedtomanage
financialconcernsbeforenegativenumberswereinwidespreaduseinEurope.
Knowingthathelpedusunderstandthecommonlyencountered,yetrarelydefined
termsdebit,creditandbalanceinanentirelynewlight.
Givenitspositionasthebedrockoffinance,wefinditverystrangethatfewapplications
useaccountingtotrackmoney.
WhyisAccountingImportant?
Nearlyeverybusinessintheworldisrequiredtomaintainrecordsandpaytaxesbased
ontheiraccountingrecords.Formanyinexperiencedentrepreneursthistarnishes
accountingwithabittertasteof"taxiness."Thisisexceedinglyunfortunatebecauseitis
farmorevaluablethanthat!
Accountingallowsbusinessestocomputecriticalmetrics,mostfundamentally,whatthe
business:
hasandexpectstoreceive
owestovendorsandcustomers
owestoshareholders(owners)
hasearned
hasspent
Accountingexposeswherevalueisstoredwithin,andhowitflowsthroughabusiness.
Itdoessowithgreataccuracywhichinspiresgreatconfidence.Businessmetricsand
ratiossuchasgrossandnetincome,grossandnetmarginandROIshouldbebased
uponaqualityaccountingrecord.Whensuchmetricsarenotbasedonaccountingthey
areconsideredsuspectandlikelyunreliable.Qualityaccountingisasignof,andthe
fundamentalbasistoprove,thetrustworthinessofanentitysfinancialrecords.
WhatisAccounting?
Accountingisamethodologyoftrackingthemovementofvaluethroughasystemof
accounts.
Thefundamentalruleofaccountingisthatwhatthebusinessownsandisowedmust
alwaysEXACTLYEQUALwhatitowestoothers.Wefoundthishighlycounterintuitive.
It'seasytoimaginetransactionsthatappeartoviolatethisrule,untilyouunderstand
thataccountingdemandsthatanyvaluethataccumulateswithinthebusinessisowed
totheshareholdersofthebusinessindeveloper'sterms,accountingmaintainsvery
strictseparationofconcerns.
Thisfundamentalruleisexpressedbytheaccountingequation:
THEACCOUNTINGEQUATION
Whatthe
BusinessHas
andExpectsto
Receive
MustEqual
Whatthe
BusinessOwes
toVendorsand
Customers
Plus
Whatthe
BusinessOwes
toShareholders
Assets
Liabilities
Equity
DebitandCredit
Perhapsthemostdifficultvocabularywordsinaccountingaredebitandcredit.Thisis
likelyduetotheiruseinconsumerfinancialproductssuchasbankstatements,debit
cards,andcreditcards.
Letsdefinedebitandcreditfromscratch.TheytranslatefromItalian,perhaps
unsurprisinglygiventheaccountingequation,asowedtoandowedby.While
accurateandinstructive,we'vefoundthetranslationstobelessusefulthantheycould
be,sowe'veincludedmnemonicsthatwe'vefindquiteuseful.
DEBITANDCREDITTRANSLATIONS
VernacularItalian
Translation
UsefulMnemonic
Debito
Owedto
To
Credito
Owedby
From
Accounts
Accountsexistintwobasicforms:thosethatareexpectedtohaveapreponderanceof
debit(debitnormalbalance),andthosethatareexpectedtohaveapreponderanceof
credit(creditnormalbalance).
ACCOUNTINGEQUATIONANDNORMALBALANCE
Whatthe
BusinessHas
andExpectsto
Receive
MustEqual
WhattheBusiness
OwestoVendors
andCustomers
Plus
WhattheBusiness
Owesto
Shareholders
Assets
Liabilities
Equity
DebitNormal
CreditNormal
CreditNormal
Addingadebittoadebitnormalaccountincreasesthevalueinthataccount.
Conversely,addingacredittoadebitnormalaccountdecreasesthevalueinthat
account.
Accountsareusedtomeasurevalueasitflowsthroughthebusiness.Accountscan
representinternalviewsofexternalrelationshipssuchasbankaccounts,ortheymay
beusedpurelyforinternalmanagerialpurposessuchasinventoryaccounts.
Balance
Thenextfundamentalconceptinaccountingisbalance.Balanceinaccountingisthatof
anoldfashionedbalancescale.Ratherthanweighingphysicalobjects,accounting
weighsdebitandcredit.
AlldebitandcreditinanaccountingsystemMUSTbalance.Ifyou'veeverheardabout
anaccountantlosingsleepatnightbecausetheywereoffbyapenny,it'snotthepenny
they'reworriedabout!It'sknowingthattheirsystemisoutofbalance.Accountants,like
softwaredevelopers,donotlikeinconsistentdata!
Whilewethinkofaccountbalancesasasinglevalue,buttheyarenot.Balancesin
accountingarecomposedoftwovalues:thesumofdebitandthesumofcredittothat
pointintime.Thesinglevaluewe'refamiliarwithisthenetbalance,whichisthesmaller
amountofthetwosubtractedfromthelarger:
debit(5):credit(10)=credit(105)=credit(5)
credit(5):debit(10)=debit(105)=debit(5)
Netbalancesinaccountsareconsiderednormalifthelargervalue(debitorcredit)
matchesthenormalbalanceoftheaccount,ortheaccountisperfectlyinbalance,i.e.
sumofdebitequalssumofcredit,i.e.isinbalance,i.e.hasazeronetbalance.Ifthe
largersumdoesnotmatchthenormalbalanceoftheaccount,thenthebalanceis
consideredabnormalandisdisplayedinparenthesis.Fromamathematical
perspective,abnormalbalancesareessentiallynegativebalances,thoughin
accountingnegativenumbersshouldneverbeusedorallowed.
AccountsandBalances
Cashisanassetaccount.Assetaccountshavedebitnormalbalances.Whencashis
receivedaccountantsdebitthecashaccounttoincreaseit.Whencashisspent,they
creditthecashaccounttodecreaseit.
ASSET/CASHDEBITNORMALEXAMPLE
Date
Description
5/17/2015
cashreceived
5/18/2015
5/19/2015
Debit
Credit
Balance
0.00
10.00
10.00
cashspent
5.00
5.00
cashspent
10.00
(5.00)
Noticethelastlinewherewecredit(decrease)10fromabalanceof5.Thebalanceisin
parenthesisbecausethebalanceisabnormal:ithasmorecredit(5+10)thandebit(10).
TheresultisNOTnegative5,asaccountinghasnonegativenumbers.Instead,itisa
netcreditbalanceof5inanaccountthatnormallyshouldhaveapreponderanceof
debit,i.e.isadebitnormalaccount.
Thisprobablyseemslikeasubtlepointatfirst,butitisVERYimportant:doubleentry
accountingisfundamentallybasedontheentiresystembeinginbalancejustlikethat
oldfashionedbalancescale.
Everythingworkstheoppositeforcreditnormalaccounts,i.e.acreditincreasesthe
balance,andadebitdecreasesthebalance.
Debitandcreditaresimplytheoppositeofeachother.Thiswasahardconceptforus
sincewewereusedtolookingatbankstatements,whereadebitalwaysdecreasedthe
balanceoftheaccountandcreditalwaysincreasedthebalance.Wedidntknowthat
bankaccountstatementsareliterallyjusttranscriptionsofthebank'sliability(credit
normalbalance)accounts!
JournalEntries
JournalEntriesarehowentriesaremadeintoaccounts.Sincetheentiresystemmust
remaininbalanceatalltimes,eachjournalentrymustalsobeinbalance.
Thismeansthatentriesaremadeinatleasttwoaccounts,hencethename
doubleentryaccounting.Oneentryfortheaccountthevalueisgoingto(debit)andone
fortheaccountthevaluecamefrom(credit).Noticehowourboldedmnemonicsmakeit
easytounderstandwhichaccountneedstobedebited,andwhichcredited.
Moresubtlesplitsarepossible,aswe'llseeinAccountingforDevelopers102.This
fundamentaluseofoffsettingentriesmakesitunlikelythatinnocentmistakesor
larcenywillgounnoticed.
Let'ssayyouborrow$5fromyourfriendSamforlunch.Howwouldyourecordthisasa
journalentry?
Hereisajournalentrythatrecordswherethe$5wentto(debit),andwherethe$5
camefrom(credit):
JOURNALENTRYEXAMPLE#1:BORROWCASH
Date:July31,2014
Description:BorrowedmoneyfromSam
Account
Debit
Add
toPettyCash(assetaccount/debitnormal)
Credit
5.00
Loan
fromSam(liabilityaccount/creditnormal)
5.00
TotalDebit/Credit:
5.00
5.00
Sincethisjournalentryhas5debitand5credit,itisinbalance,andapplyingittothe
systemwillkeepthesysteminbalanceaswell.
Ifyoudepositthat$5to(debit)yourcheckingaccountfrom(credit)pettycash,here'sa
journalentrythatdescribesthattransaction:
JOURNALENTRYEXAMPLE#2:DEPOSIT$5CASH
Date:July31,2014
Description:DepositPettyCashtoChecking
Account
Debit
Deposit
tochecking(assetaccount/debitnormal)
Credit
5.00
fromPettyCash(assetaccount/debitnormal)
5.00
TotalDebit/Credit:
5.00
5.00
Noticethatwealwayslistdebitbeforecredit.Thisisanindustrystandarddatingbackto
(atleast)Pacioli.Whilewerespectthestandard,it'sclearlyastylisticissuethathasno
effectonthedata.
Inthenextpost,AccountingforDevelopers102,we'lltaketheseconceptsforwardand
explainthechartofaccounts,reportingingeneral,thebalancesheetandincome
statementspecifically,cashvsaccrualaccounting,andtheaccountingcycle.