I've followed these tips below to have pretty good battery life on my device:
Location Services and Bluetooth: toggle on when needed.
I've found that the drain from Spotify, TuneIn and Amazon Kindle, even when not in use is significant.
Limit Facebook notifications to only those really necessary if you have the app installed on your device at all. SOME of these can only be controlled from the UI on the actual PC/Mac website (i.e. from your friends page, only get notifications from posts from a handful of friends...if you're getting notifications from hundreds of friends posts during the course of a day...you're battery is going to be toast.)
Use something other than the default Samsung music player. I cant put a finger on it...but other things are going on even when the app is not in use. Believe it or not, I've had great luck with Amazon Music...I'm a Prime member and I'm pleased with the Prime Music selections/downloads and pre-configured playlists. Plus I like the UI for music stored locally too.
Google account sync settings...this can get expensive re: battery. I have App Data, Calendar, Contacts Gmail, People Details and Photos Backup turned on; and Photos Backup will only sync while on wifi.
Google Play Store settings: I have auto-update apps and notify when app updates are available turned off. I can manually visit the Play Store and update apps when I want.
Web Browsers: A lot of people are big fans of Chrome, but I pass due to its font rendering and readability for some sites along with its memory overhead. I liked Dolphin but again...there is a lot going on in the background there too. I've been going back and forth with the Samsung browser and Opera.
Be wary of what I'll call junk apps or just poorly optimized apps. IMO apps such Words with Friends, Clean Master, and the like are just poorly written and are big drainers...even when not actively in use. I throw Instagram, Google Messenger, BBC News and Weather Channel into this category too.
Package Disabler Pro. If you can't root (I have a SM-G900A) just pony up the couple bucks and get it. I've disabled all ATT and Samsung bloat this way. See below for my disabled apks on my device:
<?xml version="1.0"?>
-<importExportSetting>
-<disabledPackages class="java.util.ArrayList">
<string>com.monotype.android.font.rosemary</string>
<string>com.matchboxmobile.wisp</string>
<string>com.samsung.android.app.galaxyfinder</string>
<string>com.drivemode</string>
<string>com.vlingo.midas</string>
<string>com.osp.app.signin</string>
<string>com.samsung.android.sdk.spenv10</string>
<string>com.att.android.digitallocker</string>
<string>com.samsung.android.app.withtv</string>
<string>com.telenav.app.android.cingular</string>
<string>com.infraware.polarisoffice5</string>
<string>com.sec.android.widgetapp.easymodecontactswidget</string>
<string>com.sec.android.app.samsungapps</string>
<string>com.sec.android.widgetapp.activeapplicationwidget</string>
<string>com.sec.android.app.billing</string>
<string>com.dsi.ant.service.socket</string>
<string>com.yahoo.mobile.client.android.yahoo.att</string>
<string>com.sec.android.directconnect</string>
<string>com.samsung.SMT</string>
<string>com.samsung.dcm</string>
<string>com.mobitv.client.tv</string>
<string>net.aetherpal.device</string>
<string>com.dsi.ant.sample.acquirechannels</string>
<string>com.samsung.android.sdk.samsunglink</string>
<string>com.sec.android.widgetapp.dualclockdigital</string>
<string>com.yellowpages.android.ypmobile</string>
<string>com.sec.android.pagebuddynotisvc</string>
<string>com.sec.android.widgetapp.ap.hero.accuweather</string>
<string>com.yahoo.mobile.client.android.mail.att</string>
<string>com.asurion.android.mobilerecovery.att</string>
<string>com.dsi.ant.plugins.antplus</string>
<string>com.sec.kidsplat.installer</string>
<string>com.samsung.android.app.sounddetector</string>
<string>com.att.android.mobile.attmessages</string>
<string>com.sec.spp.push</string>
<string>com.dsi.ant.server</string>
<string>com.samsung.android.allshare.service.fileshare</string>
<string>com.sec.android.app.sns3</string>
<string>flipboard.boxer.app</string>
<string>com.monotype.android.font.chococooky</string>
<string>com.sec.android.service.health</string>
<string>com.ipsec.vpnclient</string>
<string>com.android.noisefield</string>
<string>com.samsung.android.beaconmanager</string>
<string>com.samsung.android.app.FileShareClient</string>
<string>com.sec.android.app.shealth</string>
<string>com.sec.android.emergencylauncher</string>
<string>com.samsung.android.app.watchmanagerstub</string>
<string>com.samsung.android.app.FileShareServer</string>
<string>com.sec.android.widget.samsungapps</string>
<string>com.samsung.groupcast</string>
<string>com.monotype.android.font.cooljazz</string>
<string>com.sec.msc.nts.android.proxy</string>
<string>com.samsung.android.sconnect</string>
</disabledPackages>
</importExportSetting>
If the above pointers are all fails for you...go thru the motions...backup everything you want to keep...and do a FDR and then revisit the pointers above.