How do I log a shot?
- Create a bean, then open it.
- Choose a new shot. For a first shot, enter your dose and yield in grams. Time in seconds and grinder settings are optional.
- Add a taste, rating, notes or the next change you want to try, if useful.
- Tap Save shot. The saved summary shows the ratio and, when available, a comparison with your previous shot for that bean.
Numbers allow one decimal place. Dose must be 0.1–100.0 g, yield 0.1–500.0 g, and an entered time 0.1–600.0 seconds. A blank time means “not entered”; zero is not a valid time. Use the decimal separator appropriate to your device's locale. For example, 18.0 g in and 38.0 g out gives a 1:2.11 ratio.
PullLedger is a manual journal. It does not connect to a scale or machine, run a shot timer, or diagnose your coffee's taste.
What is copied from my previous shot?
Starting with previous settings copies the latest saved shot's dose, yield, time, grinder name and grind setting for the same bean. Taste, rating, notes and the new “next change” are left empty so that you can record a fresh result. The previous next-change note is shown as a reference.
Choose an empty record if you want to start from scratch. The first shot for a bean has no previous comparison. Comparisons stay within the same bean; grind settings are shown as text rather than converted between grinders.
A saved shot keeps its bean when you edit it. To record a different bean, start a new shot for that bean. Archiving a bean moves it out of the active list while keeping its history.
Is a draft the same as a saved shot?
No. PullLedger keeps one unfinished draft locally and can offer to resume or discard it. A shot is saved only after its save operation succeeds. If saving fails, correct the displayed issue and try again; your draft remains available.
Recent typing may not survive an abrupt force-stop or device failure before the draft is written. A completed save is more durable than an unfinished entry. Drafts are excluded from exported backups.
If a bean or the shot being edited has been deleted, its draft can no longer be saved. If only the source of a new draft was deleted, copied inputs can remain while the deleted reference is removed.
Why did the app stop accepting new records?
The journal supports up to 100 beans and 9,800 shots, with a 5 MiB backup-size limit that may be reached earlier with long notes. The app explains a limit before committing a change. You can still read and export your records, or delete records you no longer need. Save a backup before deleting anything you want to keep.
How do I back up or move my journal?
- Open Settings → Backup & data → Save backup file.
- Choose a file location using Android's picker and wait for the app's completion message.
- Keep that JSON file somewhere you can access on your new device.
- On the other device, open PullLedger and choose the backup to restore. Review the replacement warning before confirming.
Back up before uninstalling or changing devices. PullLedger has no account or automatic cloud sync. Its data is excluded from automatic Android app backups and device-transfer backups. We cannot recover a lost journal through your email address.
A backup contains all beans and saved shots. It excludes the unfinished draft, theme and privacy choices. The file is plain, unencrypted JSON and may contain private notes. Use a location you trust. Choosing a cloud-backed folder may let that provider upload the file; PullLedger itself does not perform a cloud upload.
If a file write fails or is cancelled, the journal on the device stays as it was. A failed file write may leave a partial file at the chosen destination; do not rely on that file as a completed backup.
Will restoring a backup merge my records?
No. Restoring replaces every current bean, shot and unfinished draft on that device. Save a separate backup of the current journal first if you may need it. An empty backup removes all current journal records after you confirm.
Choose Settings → Backup & data → Choose backup to restore. The app validates the file, then shows its creation time and record counts beside the current counts. Nothing is replaced until you confirm. Theme, analytics choices and advertising consent are kept.
Use a PullLedger JSON backup up to 5 MiB. A file from another app, an unsupported version, damaged contents or invalid records is rejected as a whole. A validation failure or cancelling before confirmation leaves the current journal unchanged. The record replacement applies the complete validated journal together, or keeps the previous records. If the app says the journal changed while you reviewed the file, review the updated counts before confirming again.
Files may retain the internal shotnote app identifier or backup filename. PullLedger keeps this identifier for compatibility; it is the same journal format. Validation checks the file's format and relationships, not who created the file. Import only a backup you intended to use.
How do I delete records?
Open a saved shot to delete that shot, or use a bean's delete action to remove the bean and all of its shots. The app asks you to confirm the affected records.
To remove the whole journal, choose Settings → Backup & data → Delete all journal data, review the counts and confirm. This also removes the unfinished draft. The action cannot be undone without a backup.
Your theme, analytics choice and advertising consent remain. Files you previously exported, mail you sent and data already received by Google are not deleted by this action. Delete or manage those separately. There is no PullLedger account to close.
How do advertising and analytics choices work?
Advertising
An eligible newly saved shot summary can contain one separated banner. There are no ads in the editor or backup flow. A missing ad, an offline connection or a consent error should not stop you from saving and using the journal.
Open Settings → Privacy & advertising to manage advertising choices when Google's consent service requires a privacy-options entry point. If the update failed, use Retry advertising choices while connected. The options shown depend on your region. Declining personalized ads may still allow other permitted ads.
Optional usage analytics
Usage analytics starts off. When available, enabling it requires reading the explanation and choosing Agree and enable analytics. It never includes your journal values or notes in custom events. If the service is unavailable in your build, it remains off.
You can turn analytics off in Settings. This stops Firebase Analytics collection and resets its local data, but does not immediately delete data already sent to Google or stop separate permitted advertising requests. If the app cannot save your OFF choice, use Retry saving analytics off so it can be retained after restart.
See the privacy policy for data categories, providers and additional choices.
Contact support
PullLedger is operated by Slow Turtle. Email us about an app issue or privacy question:
To help us reproduce a problem, include:
- Your PullLedger app version and Android version, available in Settings → Support & app info.
- The steps you took, what you expected, and what happened instead.
- A displayed error category, if there is one.
The in-app support action prepares an email with app and Android versions only. It does not send automatically or attach journal records. We do not need a password, authentication code, private key, full backup or the contents of your private tasting notes. Remove private details before sending a screenshot.
This website has no support upload form and does not automatically submit diagnostics. Read how support messages are handled in the privacy policy.