ShiftLedger

ShiftLedger — Terms of Service

Last updated: 15 September 2026

The short version:

1. Agreement to these terms

These Terms of Service ("Terms") are an agreement between you and Alan Chang ("we," "us," "the developer"), developer of ShiftLedger (the "App"). Using the App means you agree.

The App is also governed by Apple's Licensed Application End User License Agreement and App Store Terms of Service. Apple is not a party to these Terms and is not responsible for the App, except as described in Section 13.

We grant you a personal, limited, non-exclusive, non-transferable, revocable license to use the App on Apple devices you own or control. You agree not to reverse-engineer it beyond what law allows, transfer your access, circumvent its purchase mechanisms, or use it against a calendar provider's, employer's, or other's rights, and we may suspend or terminate your license for material breach (Section 11).

2. What ShiftLedger is — and the limits of its estimates

ShiftLedger is a personal record-keeping and estimation tool: it reads your schedule from a connected calendar, turns shift codes into times, and estimates hours, overtime, and pay from rules you configure. It is not a payroll system, a system of record, a time-and-attendance system for wage-and-hour compliance, a clinical application, or legal, tax, accounting, or employment advice.

Schedules and pay rules are messy, and the App makes judgment calls:

  1. Placeholder times. Scheduling systems often publish filler times on entries with none; the App infers from the code, but can mistake a real shift for a placeholder.
  2. Codes are guessed, not looked up, from calendar text — wrong on unfamiliar codes, but visibly and fixably.
  3. Unresolved codes aren't counted — parked in "Needs Setup" until fixed, so totals can be understated.
  4. No recorded end time means "as scheduled." Every figure is a floor: owed if the shift ran as planned, not what actually happened.
  5. Removed shifts may or may not count — one removed after it starts still counts; before it starts, it doesn't, unless you'd recorded actual times.
  6. Sync is manual — on open, return, or Sync Now; only as current as your last sync.
  7. Recurring feed events aren't expanded into shifts (iPhone calendars are, via iOS).
  8. Time zones follow the calendar's declaration (or your iPhone's, if none); a publisher's wrong zone yields a wrong time.
  9. Every pay rule is one you typed in — none is active by default, and a misconfigured rule is wrong.
  10. Rounding is a setting you choose (none by default, or nearest 5, 6, 10, or 15 minutes) — moving totals either way.
  11. Currency is a display label only — never a conversion.
  12. Discrepancy flags are your own judgment — flagged only because you compared a shift to your paystub by hand.
  13. Pay figures recalculate on every view — a rule change can alter how a past period displays.

All hours, overtime, and pay figures are therefore estimates. Review them yourself — your employer's records and actual paystub govern. Don't rely on the App alone for a pay dispute, wage claim, negotiation, tax filing, or other legal or financial decision. The developer is not liable for any missed, late, or incorrectly attended shift, or for any pay, overtime, wage, bonus, or benefit that is miscalculated, underpaid, overpaid, disputed, or lost, to the fullest extent the law allows (Section 10).

3. Your responsibilities

You're responsible for entering accurate information (pay rate, overtime rules, manual edits); reviewing times, hours, and pay before relying on them; having the right to access any calendar you connect; and maintaining your own backups (Section 7).

Your feed address is a credential. A subscribed feed's web address works like a password — anyone with it can read your entire schedule. Don't post, email insecurely, or share it. If it's been exposed, ask your scheduling administrator for a new one.

4. No protected health or patient information

ShiftLedger is not a clinical application and doesn't manage patient or case data. But because the App stores imported calendar text and any notes you add verbatim, exactly as entered, don't connect a calendar containing patient names, medical record numbers, or other patient-identifiable information, or type such information into a shift's notes or anywhere else in the App.

The developer is not a "covered entity" or "business associate" under HIPAA or an equivalent law. If you work in healthcare, connect only your own schedule — never a calendar or note containing information about a patient.

5. Purchases, subscriptions, and the free trial

ShiftLedger offers two ways to unlock full access, through the App Store:

U.S. prices shown; local price and tax are set by the App Store before purchase. Cancel any time in Settings › Apple Account › Subscriptions, at least 24 hours before renewal. Apple handles all billing, receipts, and refunds, not us — contact Apple (reportaproblem.apple.com). Family Sharing is on for both, and Restore Purchases always works, never gated. Prices may change for future periods per Apple's rules.

6. What you keep without a subscription

Full access is not required. Without a subscription or lifetime unlock, the App stays fully usable in read-only form — a deliberate commitment, not a crippled trial. You always keep: reading your schedule in both views and opening any shift's details; connecting, removing, configuring, and syncing calendar sources; all backup and restore including the iCloud mirror; and the hours report and CSV export.

Nothing already entered is ever locked away or deleted for lack of a subscription. Full access — adding/editing shifts, actual times, picked-up shifts, shift codes, pay rules and jobs, and Overview/Overtime — needs an active subscription or lifetime unlock; an expired one drops you to read-only above, never to nothing.

If the App can't determine your purchase status (say, you're offline), it fails open, granting full access rather than locking out someone who already paid.

7. Your data, backups, availability, and updates

ShiftLedger has no backend server and no user account — your data lives on your device (and, if enabled, in your own iCloud account via the optional mirror). The developer never has a copy and, as a result, cannot recover it for you.

You're responsible for your own backups. The App creates local, versioned backups automatically, and you can export one — keep copies safe. A lost or wiped device can mean lost data, including the feed address in its Keychain; there's no cross-device sync beyond that mirror. See our Privacy Policy.

We don't guarantee the App is always available or defect-free, and may change or remove features over time. A scheduling provider we don't control may change, restrict, or withdraw its feed at any time, breaking imports through no one's fault.

8. Third parties, trademarks, and non-affiliation

ShiftLedger is not affiliated with, endorsed by, sponsored by, or produced by any calendar scheduling provider, employer, payroll system, Google, Microsoft, or Apple. It integrates with no vendor's API; a Google or Outlook/365 calendar is reached only indirectly, via your iPhone's calendar database. Third-party names describe compatibility only — no endorsement implied.

9. Disclaimer of warranties

To the maximum extent the law permits, the App is provided "as is" and "as available," without warranties of any kind, express, implied, or statutory — including merchantability, fitness for a particular purpose, accuracy, and non-infringement. We don't warrant the App will be error-free, uninterrupted, secure, or that its hours, overtime, or pay estimates will be accurate for you.

Some jurisdictions don't allow excluding certain implied warranties, and nothing here excludes a non-excludable statutory consumer right.

10. Limitation of liability

To the maximum extent permitted by law, we are not liable for indirect, incidental, special, consequential, exemplary, or punitive damages arising from your use of the App — including lost wages, lost earnings, lost income, missed shifts, payroll disputes and their consequences, employment consequences, lost profits, lost data, or the cost of substitute services — even if advised of the possibility.

Our total liability for any claim relating to the App or these Terms will not exceed the greater of (a) what you paid for the App and its in-app purchases in the 12 months before the claim, or (b) US$20. This applies regardless of legal theory, even if a remedy fails its essential purpose, and doesn't limit non-waivable liability or the consumer rights preserved in Section 9.

You'll indemnify us against third-party claims from your misuse of the App or violation of these Terms or another's rights, except claims arising from our own violation of law or these Terms.

11. Termination and changes to these terms

You may stop using the App any time by deleting it. Your license ends automatically on material breach. Termination doesn't entitle you to a refund except where Apple's policies or law require it; deleting the App removes its local data, but anything exported, backed up, or in your own iCloud remains yours.

We may update these Terms — for a new feature, a pricing change, or a change in law — publishing a new version with an updated date. Continued use after that means you accept it.

12. Governing law and disputes

These Terms are governed by the laws of the State of California, United States, without regard to conflict-of-laws principles, except where a mandatory law of your country of residence grants protections that can't be waived; nothing here removes them.

A dispute that can't be resolved informally (Section 14) may be brought in the state or federal courts of California, or a court local to you where consumer-protection law permits. Nothing here requires arbitration or waives your class-action rights, except as you separately agree in writing.

13. Apple-specific terms

Because the App is distributed through the App Store, the following apply as Apple requires:

14. Contact

Questions about these Terms? Contact [email protected].

This page is published from the same text reviewed against ShiftLedger's source code. See also the Privacy Policy, or get in touch.