A private time and billing log for physicians. Everything stays on this device, encrypted with your passcode or passphrase. This manual works offline. Version 9v (October 2026).
1. Getting started, passcode and easy unlock
2. The time-period bar
3. Arrival, departure and call-backs
4. Encounters: the spreadsheet, notes editor, text size
5. Entry details: add time, same patient, notes
6. Track again and code sets
7. Past entries and "Entered later"
8. Billing and diagnostic codes
9. Photos and the lock
10. History, week strip and timeline
11. Review a day or week
12. Encrypted reports and sharing safely
13. Audit log
14. Retention and backups
15. Automatic backups
16. Your data: Export my data, Import my data and moving
17. Privacy, the law and your responsibility
18. FAQ and troubleshooting
1. Getting started, passcode and easy unlock
Add it to your Home Screen first
Install the app before you create a passcode, then always open it from the Home Screen icon. It then opens full screen and works offline.
iPhone / iPad (Safari): open the app's web address, tap Share (square with an arrow), then Add to Home Screen , then Add .
Android (Chrome): open the web address, tap the ⋮ menu, then Install app or Add to Home screen .
On iPhone, the Home Screen app keeps its own storage, separate from Safari. Entries made in a Safari tab do not appear in the Home Screen app, so pick one and stick with it (the Home Screen app is best).
First launch: passcode or passphrase
Choose Passcode (numbers) , at least 6 digits (8 or more is safer), or Passphrase (words) , at least 12 characters, where words and spaces are allowed (for example four unrelated words). Type it twice. Both make the encryption key the same strong way (PBKDF2-SHA-256, 600,000 rounds); a longer passphrase is much harder to guess.
Tick the two boxes: you understand a forgotten passcode can't be recovered, and you accept responsibility for keeping and backing up your records.
Your passcode is never stored anywhere. It makes the key that encrypts your data.
To change it later, or to switch between a passcode and a passphrase: Settings → Lock → Change passcode / passphrase . Everything is re-encrypted with the new one.
Easy unlock: Face ID, Touch ID, fingerprint, passkey or quick PIN
Face ID is the default way in (v9p). When you open the app, or come back to it from another app, it asks for Face ID (Touch ID, fingerprint or passkey) by itself; there's nothing to tap. Your passcode or passphrase is the fallback and always works.
New setup, iPhone / iPad / Android app: right after you create your passcode, easy unlock is turned on and confirmed with one Face ID scan. The first time, iOS asks Do you want to allow "MedBilling Logs" to use Face ID? ; tap Allow . If you cancel, don't allow it, or Face ID isn't set up on the phone, easy unlock stays off and the passcode is used; you can turn it on any time in Settings → Lock → Easy unlock .
New setup, browser / Home Screen web app: where the device has a built-in Face ID / Touch ID / Windows Hello passkey that supports this, you're asked once Use Face ID to unlock? ; Use creates the passkey (the browser needs that tap).
Already using the app: after your next passcode unlock you're asked once Use Face ID to unlock? , with Use Face ID as the main choice. Not now keeps the passcode, and you won't be asked again (Settings → Lock turns it on later).
When it asks by itself: when the app opens and when you return to it. After you press Lock yourself, or after it locks from inactivity while on screen, it waits for you: tap Unlock with Face ID (the main button) or type the passcode.
If Face ID fails or you cancel: the passcode box is ready to type in; it doesn't keep re-asking. Tap Unlock with Face ID to try again.
To turn it off, or to use a quick PIN instead: Settings → Lock → Easy unlock (you type your passcode or passphrase once to turn it on).
iPhone / iPad app: Unlock with Face ID (or Touch ID). A copy of the encryption key is wrapped with a key kept in the iOS Keychain that only opens after Face ID / Touch ID, and stops working if the enrolled faces or fingers change.
Android app: Unlock with fingerprint (or face unlock where the phone offers strong biometrics), using the Android Keystore the same way.
Quick PIN (iPhone, iPad and Android app only): a 4 to 6 digit PIN. It is stretched with the same strong key derivation as the passcode and combined with a secret held in the device Keychain / Keystore. After 5 wrong PINs the quick PIN is erased and you need the full passcode. It is not offered in the browser, because a short PIN stored in a browser could be guessed offline.
Browser / Home Screen web app: Unlock with a passkey (Face ID, Touch ID, Windows Hello or a phone/security key) where the browser and passkey support the PRF extension: Safari 18 or later on iPhone, iPad (18.4 or later is most reliable) and Mac (macOS 15 or later) with iCloud Keychain passkeys; Chrome on Android with Google Password Manager; Chrome or Edge on Mac; on Windows, Windows Hello works only on Windows 11 25H2 with the February 2026 update and Chrome/Edge 147 or later (or Firefox 148 or later). Where the browser lacks it the option is hidden; if a particular passkey can’t do it, the app says so and leaves easy unlock off.
Your passcode or passphrase always works and is never replaced. Changing it turns easy unlock off until you turn it on again.
Easy unlock never opens exports. Export passwords are always typed and must differ from your passcode.
Your data stays encrypted the same way (AES-GCM with a 600,000-round key). Easy unlock only stores an extra wrapped copy of the key that the device's biometrics, passkey or PIN can open.
Readable automatic backups that use "same as the app passcode" need one unlock with the passcode itself in that session.
If you forget the passcode
No one can recover it or open your data, including the developer. The only way back in is Forgot passcode? on the lock screen: type DELETE to erase everything on this device and start again. If you have an encrypted backup and remember that backup's passcode, you can import it afterwards. This is why backups matter.
After 5 wrong passcodes in a row, the app makes you wait (30 seconds at first, longer with each further miss, up to 15 minutes).
The screens
Today: one slim toolbar (date, facility, Arrive/Depart, week totals, + Call-back, Report / share and ⋯ More ) above the encounter spreadsheet . Running rows count up live in the Min column; a totals row is pinned at the bottom.
History: the same spreadsheet grouped by day, with week totals, timeline, review and reports.
Resources: official billing, privacy and regulatory websites, including MedBilling Fee Desk.
Settings: display (text size and font), defaults, timer warnings, time periods and holidays, lock, backups, retention, audit log, this manual and Delete all data.
2. The time-period bar
Per user, verify against the current SOMB. These periods were set up from your own list. MedBilling Logs doesn't attach fee codes to them. Check the current Alberta Schedule of Medical Benefits before you bill.
The bar under the header shows the billing time period you're in now (America/Edmonton time):
The period name and hours, and a progress bar through the period.
The time left until the next period starts, and the next period's name.
The period's total units, the units elapsed so far, and the units you've logged in encounters during this period. Units are 15-minute blocks.
Weekdays (Mon–Fri) Weekday daytime 07:00–16:59 no premium units Weekday evening 17:00–21:59 20 units Weekday late evening 22:00–23:59 8 units Weekday overnight 00:00–06:59 28 units
Weekends (Sat–Sun) and statutory holidays Weekend/holiday daytime 07:00–21:59 60 units Weekend/holiday late evening 22:00–23:59 8 units Weekend/holiday overnight 00:00–06:59 28 units
Every encounter is tagged with its period(s). If it crosses a boundary (for example 21:50–22:20), its minutes and 15-minute units are split between the periods. You'll see the split in the entry, under the start time in lists, in the daily totals, and in CSV, PDF and Word reports.
Statutory holidays bill like weekends (v9o: the official AHCIP list). The holidays are the ones in the SOMB Governing Rules (GR 1.2), worked out automatically every year, including the moving ones: New Year's Day, Family Day (3rd Monday of February), Good Friday, Victoria Day (Monday before May 25), Canada Day, Alberta Heritage Day (1st Monday of August), Labour Day, Thanksgiving Day (2nd Monday of October; Monday 12 October 2026), Remembrance Day, Christmas Day and Boxing Day. National Day for Truth and Reconciliation and Easter Monday are not AHCIP holidays, so they are not on the list. Switch any of them off under Settings → Time periods and holidays , which shows this year's and next year's dates.
Designated days (GR 1.3). When a holiday falls on a Saturday or Sunday, the Minister designates another day. The app marks the expected weekday (for example Monday 28 December 2026 for Boxing Day 2026, as published in the AMA's 2026 after-hours table; 27 and 28 December 2027 are computed, so confirm them with Alberta Health when they are announced). The weekend holiday itself bills with TST , the designated day with TDES .
For any other day you need treated as a holiday, tick Today is a statutory holiday in Settings on that day (marked "set by you").
The bar also shows the after-hours premium for the period, in plain words (v9p). First line, e.g. TEV 18 of 20 units : the units you entered on that modifier today against its official daily maximum. Second line, e.g. Evening time logged: 35 units · 25 min left : the 15-minute units of encounter time logged in this period only (from your rows' In / Out times). The totals row under the spreadsheet counts the whole day, so it can be higher (for example 36 units = Day 1 unit + Evening 35 units). See After-hours premium units in section 4.
3. Arrival, departure and call-backs
Time on site
On Today , tap Facility and pick your hospital (Alberta hospitals, grouped by AHS zone; type to filter). For a clinic or a site not listed, type a custom name under Other / clinic .
Tap Arrive when you get there. The button changes to Depart ; tap it when you leave.
Forgot to tap Arrive? Open ⋯ More → Edit arrival time / back-date to set the real time.
"Time on site today" adds up all your on-site periods for the day.
Call-backs
Tap + Call-back . Choose Return to hospital or Phone call-back , and set Time called (the time you were contacted).
Save. The call-back timer starts running from now (or set an earlier arrival time with the quick buttons).
Tap Stop when you finish. Under Linked encounters , tick the encounters seen during that call-back.
Call-backs show a CB badge and have their own totals.
4. Encounters: the spreadsheet
Today is a spreadsheet, like Excel or Google Sheets: gridlines, a grey header row and row numbers, light zebra striping, a sticky header, and a totals row pinned at the bottom. Columns: # · Patient name · MRN / PHN · H/C (Hospital or Clinic) · In · Out · Min · Units · Facility # · Functional centre · Fee code · Modifier code 1 · Modifier code 2 · Diagnosis (ICD-9) · Billing notes · ⋯ . There are always at least 15 blank rows below your entries, and the grid never runs out (see Rows never run out below). Every change saves encrypted straight away; there are no pop-up forms for normal work.
The totals (v9p). The totals row shows the number of encounters, the total time in hours and minutes (8 h 52 ) and the units, then 8 h 52 min · 36 units . Under it, one plain line each for Hospital, Clinic, Call-backs and On site, and for every time period with logged time, for example Hospital 8 h 52 min · 36 units , Day 17 min · 1 unit , Evening 8 h 35 min · 35 units (Night, Late evening, Weekend or Holiday as they apply). On a phone each is on its own line; they stay in view when you scroll sideways. The Min column of each row still shows minutes. Each row's units are counted on its own, so the period lines can add up to a unit more or less than the total.
New patient: type a name or MRN/PHN in the first blank row. That creates the encounter (not started yet).
Start the clock: type the time in In (24-hour: 0930 , 9:30 , 21h05 ; type n for now), or tap ▶ in the In cell. The row's Min cell then counts up live.
Stop: type the time in Out (an Out earlier than In means after midnight), or tap ■ in the Out cell.
H/C: tap (or press Space, or type H or C) to switch between Hospital and Clinic.
Codes: type or paste fee and ICD-9 codes (several separated by commas). Select the cell and tap ↗ (or ⓘ beside a code) to pick in MedBilling Fee Desk: tap a code there and it comes straight back into that cell (see section 8 ).
Modifiers: type modifier codes in Modifier code 1 and Modifier code 2 (right after Fee code). Each cell takes several codes separated by commas or spaces; they are saved in capitals, separated by ", ", with duplicates removed (e.g. cmgp bmi → CMGP, BMI ). See Modifier codes below.
Modifier codes and roomy code cells (v9k)
Two Modifier code columns sit between Fee code and Diagnosis (ICD-9) . Use them however suits your billing: for example, modifiers for the first fee code in Modifier code 1 and for the second in Modifier code 2 , or simply all of them in one cell.
Room for several codes: Fee code, Modifier code 1, Modifier code 2 and Dx are wide enough for about 15 characters (three or four codes) before anything wraps, at every text size. When a cell holds more, the column widens up to a maximum and then the codes wrap onto more lines and the row grows taller; nothing is ever cut off. On a phone a code column stops at about 60 % of the screen and wraps from there. Each of these cells holds up to 200 characters (v9m), enough for 20 or more codes with their commas. In Dx each code sits beside a fee code in order; more Dx than fee codes are kept too, after the paired ones (v9m).
A bigger cell while you type: the code cell you are editing opens to at least two lines, and keeps growing as you add codes. Tab, Enter or the keyboard's Next moves Fee code → Modifier code 1 → Modifier code 2 → Dx, like any other cell. On a phone, a code cell you tap that is partly off the edge slides fully into view.
Modifiers are encrypted with the entry and appear in History , the entry details (a Modifiers line) and the edit form (Modifier code(s) 1 / 2 ), every report (PDF, Word, Excel, CSV columns modifier_1 and modifier_2 ), encrypted backups and the audit log. Entries made before version 9k simply have empty Modifier cells, and totals are not affected.
Modifiers from Fee Desk (v9p): select a Modifier code 1 or Modifier code 2 cell and tap ↗ (or ⋯ → Pick modifier in Fee Desk). Fee Desk opens straight on its Modifiers tab; tap a modifier to send it, or + several and Send. They come back into the cell you started from (from Modifier code 2 they go to Modifier code 2), added after what is already there; a modifier already in the row is not added twice. Undo takes the whole pick back in one step.
Type modifiers, or bring them back from Fee Desk with fee and ICD-9 codes in one go (see Several codes at once , v9l / v9m): Modifier code 1 gets the modifiers for the row's first fee code, Modifier code 2 those for its second or later fee code. Always confirm modifiers and their rules in the current Alberta Schedule of Medical Benefits.
Facility # and Functional centre (v9o)
Two columns sit just before Fee code : Facility # (the Alberta Health facility number for the claim) and Functional centre .
Facility #: tap the cell (or press Space / F4) for a searchable list of the official Alberta Health facility listing (411 facilities, "Facility and Functional Centre Definitions and Facility Listing", effective 1 July 2026). Type a number, a name or a town. ★ marks a favourite; favourites and your recent picks are listed first. A number not in the list can still be typed (marked "entered by you"). The source and date are shown at the bottom of the list.
Functional centre: the same kind of list as in Med Access: Type something to search… , Select Favourite… , Edit/Search… , then CLNC (clinic), D (day), N (night), EMRG (emergency), MED (medicine), SURG (surgery).
H/C follows the facility: on a new row whose H/C you haven't touched, picking a hospital sets H and a clinic or community facility sets C (a short note says so). On an existing row you're offered Set H/C instead; nothing changes unless you tap it.
Carry-down: a new row starts with the Facility # and Functional centre you used last that day (Settings → Facility & functional centre; on by default). You can always change them.
On a phone both lists open as a sheet from the bottom that follows the text-size setting. Both fields are encrypted with the entry and appear in History, every report (CSV / Excel columns facility_number , facility_name , functional_centre ), encrypted backups and the audit log. Entries made before v9o simply show them empty.
After-hours premium units (v9o)
The after-hours time premium (Alberta Price List, HSC 03.01AA , "SURT" modifiers) is paid in 15-minute units with a daily maximum per code. The official codes and maximums (Price List and Fee Modifier Definitions, as of 1 April 2026; holidays per Governing Rules 1.2 and 1.3):
Code When Max per day
TEV (with surcharge EV)Mon–Fri 17:00–21:59 20 units
TNTP (NTPM)every day 22:00–23:59 8 units
TNTA (NTAM)every day 00:00–06:59 28 units
TWK (WK)Sat–Sun 07:00–21:59 60 units
TST statutory holidays 07:00–21:59 60 units
TDES designated holidays 07:00–21:59 60 units
Units on the modifier (01–20): type a time modifier (TEV, TNTP, TNTA, TWK, TST, TDES, or the surcharges EV, NTPM, NTAM, WK) in Modifier code 1 or 2, then tap the small u? / ×04 button beside it (or press F4 or Alt+↓) and pick the number of units: 01 · 15 min , 02 · 30 min … 20 · 300 min . One unit = 15 minutes. You can also type it: TEV04 , TEV:4 or TEV ×04 . The list starts with a suggestion from the row's In/Out times (a suggestion only; nothing is filled in for you). The units are encrypted with the entry and appear in reports as TEV ×04 (CSV / Excel columns modifier_1_units , modifier_2_units ).
Rounding (as before): logged minutes become units as full 15-minute blocks plus one more if the remainder is 8 minutes or more (e.g. 38 min = 3 units), so 02 units is claimable from 23 minutes with the patient. The Governing Rules (GR 2.3.2, 2.3.5) govern what you may claim; confirm in the current SOMB.
Running counts: a strip above the grid shows today's totals per code, e.g. 03.01AA TNTA 0/28 · TEV 6/20 · TNTP 0/8 (on holidays it says which one). The period bar shows the current period's count. These add up the units you entered ; a surcharge (EV, NTPM, NTAM, WK) entered with units counts toward its time-premium code for that day.
Pop-up at the limit: when a code reaches its daily maximum, a pop-up says so (and again, with a warning, the first time it goes over). It never stops you entering anything. Turn it off, or set your own lower limit, in Settings → After-hours premium limits (your own values are marked "set by you").
Not tracked: the 4-units-per-hour rule (GR 15.13.10) and call-back maximums (GR 15.11). Always check the current SOMB before you bill.
Rows never run out
Entry window (v9t): tap or click a row number (or ⋯ → Open entry window, or Ctrl+Enter in a cell) to see every field of that encounter in one window. On a phone it fills the screen. Claim details at the top: patient name, ULI / PHN or MRN, sex, billing physician, specialty (skill code), BA number, Hospital / Clinic, referring physician and practitioner ID, Facility #, Functional centre and site. Billing line 1, 2, 3… each have a fee code (with its description and Fee Desk search), an ICD-9 diagnosis, calls, the service date (pick another day if the service was on a different day; it starts as the encounter day), and modifiers with a units box beside each (for example TEV 04); “+ Modifier” adds another, “+ Add billing line” adds lines without limit and ✕ removes one. Each line shows its expected payment from Alberta Health, and the expected total sits at the very bottom. These are estimates from the bundled fee schedule data (base or specialty rate × calls, plus the modifier effects), not an assessment. Visit details : admitted on, visit #, In / Out, original facility and location, newborn, hold reason, claim flags and the internal note. A Checks box updates as you type (for example a code that usually needs a referring physician, a sex-specific code, a missing time modifier or units, or a missing diagnosis). These are reminders, not rules. “⇔ Wider” (or dragging the window’s corner on a computer) makes the window wider; then each billing line fits on one row: code, diagnosis, calls, date, modifiers and units, expected pay. Every field has a ▾ list of choices; you can always type instead. Save keeps the changes, Cancel drops them, Previous / Next save and move to the next patient. The billing physician, skill and BA number you last used are filled in for new entries. Paid, balance, write-off, insurer and claim status come later with claim submission.
Referring provider (v9r): Settings → Facility # and Functional centre → Show the Referring provider column. Type the name and practitioner ID (for example "Dr. A. Smith, 12345"). On by default (turn it off here); names already saved stay with each entry and appear in exports.
On a computer (v9q): the app uses the whole browser window. The spreadsheet shares the width out so every column, from Patient name to Billing notes, is on screen without scrolling sideways (from about 1280 px wide; Edge or Chrome on a 1920 × 1080 or 1366 × 768 monitor). On a wide monitor the name, facility, code and notes columns get the extra room; In, Out, Min, Units, H/C and MRN stay compact. In a smaller window those text columns wrap onto two or more lines instead (a code is never split), and column headers may take two lines. iPhone and iPad look the same as before.
The grid is endless. Whenever the cell you are in is within 5 rows of the last row, 10 more blank rows are added below; it doesn't matter how you got there (Tab, Enter, ↓, the Next bar, or a tap), and you don't have to type anything. Scrolling down adds up to 30 more by itself; then the footer (units rule, disclaimers, Fee Desk link and this manual) shows after the last row, and scrolling on past it adds 10 more rows each time (v9o). Row numbers simply continue (… 40, 41, 42 …), and your cursor, the text you're typing and the order of rows stay exactly where they were.
Blank rows are only empty lines on the screen: they are never saved, never counted in the totals row and never appear in reports or exports. A row becomes an encounter only when you type in it (or pick a code into it).
Rows far below your entries look plain (no buttons) until you reach them; they become ordinary rows as soon as you move into, tap or hover over them.
The extra rows last until you lock the app or reload; after that the grid starts again with your entries plus the usual blank rows.
Columns fit what you type
Each column widens to fit its longest entry (and narrows again when you shorten it). Past a sensible maximum, Patient name , Fee code , the two Modifier code columns, Dx and Billing notes wrap onto more lines and the row grows taller, so nothing is cut off. Every column also has a minimum width wide enough for its usual content (about 10 digits for MRN/PHN, about 15 characters (several codes) for Fee code, each Modifier column and Dx, 5 for times, 4 for minutes and units); these widths grow and shrink with the text size (see Settings → Display below).
Nothing is pinned on the left. When the grid is wider than the screen, it scrolls sideways as a whole: the row number and Patient name scroll away with the other columns, so the codes and times get the full width. Only the header row (top) and the totals row (bottom) stay in place. On Today the grid fills the screen down to the bottom edge and is the only part that scrolls up and down, so the header row is always visible and rows 1–5 are always one swipe away (v9o). The active cell has a blue outline and its whole row is tinted, so you can always see where you are.
Moving between cells: only when you say so
The cursor never jumps to the next cell on its own, not after a full PHN, a 4-digit time or a fee code, and not when a save finishes. Rows also stay where they are while you work; they are put back in time order when you leave the grid. You move to another cell only with:
Tab or Enter : next cell to the right (after Billing notes, the first cell of the next row). Shift-Tab or Shift-Enter : previous cell.
The ← → buttons in the toolbar (same as Shift-Tab / Tab).
Clicking or tapping a cell.
↑ ↓ move up or down a row only right after you arrive in a cell (before you start typing). ← → arrow keys always move the cursor inside the text and never leave the cell.
Esc cancels the edit. Typing over a selected cell replaces it; click, or press F2, to edit inside it.
Ctrl-Z (⌘Z on a Mac) undoes the last change and Shift-Ctrl-Z (⇧⌘Z) or Ctrl-Y redoes it (see Undo and Redo ). While you are typing in a cell, before you press Tab or Enter, Ctrl-Z is the cell's own text undo.
On Billing notes , Enter and Tab move on as usual; click it, or press F2 or Space, to open the notes editor (below).
On a phone or tablet
Tap a cell to type in it; tap another cell to move there. Nothing moves while you type.
The keyboard's Next / return key moves to the next cell, in every column (including Billing notes, where return never adds a new line on the phone).
While a cell is active, a small ← Next → bar floats above the keyboard; the cell you are in is scrolled into view above the keyboard. The screen never zooms in when you tap a cell, whatever the text size (you can still pinch to zoom).
On a phone the Patient name column is narrower (about a third of the screen) and long names end in "…". Tap the name to see it in full in a small bubble above the cell; you can edit it there as usual.
Rows are at least 40 px tall, so each cell is easy to tap.
Billing notes is always a full-width column after Diagnosis (ICD-9) (at least as wide as the other text columns, wider with a larger text size); tap it to write notes about what was done for the patient. The narrow column at the very end with ⋯ is the row menu (Start, Stop, Add time, Open details, Delete…), not a notes cell.
Billing notes editor
The Billing notes cell shows a short preview (a line break shows as ↵). Tap the cell (or click it, or press F2 / Space when it's selected) to open a larger editor: a sheet that slides up from the bottom on a phone, or a pop-up box next to the cell on a computer. The editor grows as you type, can hold several lines (up to 500 characters) and uses 16 px or larger text, so iPhone doesn't zoom.
Done saves the note (encrypted, like every other cell); Cancel or Esc closes it without changes. Tapping outside the editor counts as Done.
In the editor, Enter (return) starts a new line. On a computer, Ctrl-Enter (⌘-Enter on a Mac) is Done, and Tab is Done and moves to the next cell.
Typing a letter while the Billing notes cell is selected opens the editor with that letter, replacing the old note; Cancel brings the old note back.
If the app locks while the editor is open, the unfinished note is kept encrypted and comes back when you unlock. Tap Done to save it.
Settings → Display: text size and font
Open Settings → Display to make the spreadsheet easier to read.
Text size: a slider like the iPhone's Text Size setting, with a small A on the left and a large A on the right. It has 7 steps (11, 12, 13, 14, 16, 18 and 20 px); the default is 13 px. The preview line above the slider changes as you drag. Row height and column widths grow and shrink with it, and the rest of the app scales slightly too.
Font style: System default , Rounded , Serif or Monospace . These use the fonts already on your device; nothing is downloaded.
Both settings apply straight away and are remembered on this device and browser only (they are not part of your encrypted data, backups or reports, and they contain no patient information). Reset to default goes back to 13 px, System default.
The ⋯ row menu
Tap ⋯ at the end of a row (or press and hold the row number; right-click on a computer) for: Start now, Pause, Resume, Stop, Add time, Segments & photos, Add note, Same patient: new row below, Same patient: start a new timer now, pick fee or dx in Fee Desk, Full-screen timer, Open details and Delete. Double-click a row number to open the details.
Next unit: hover the Units cell of a running row to see when the next unit starts. A running row turns amber after 60 minutes and red after 3 hours (Settings → Timers). This is a display only: recorded minutes are always the real minutes, never rounded.
Undo: after Delete , an Undo button shows for 5 seconds, and the ↶ Undo button in the toolbar brings the row back at any time that day (below). Both the action and the undo are kept in the audit log.
Forgotten timer: type the real time in Out . If a timer is red when you unlock, the app asks: Stop now , Stop at time or Keep running . A corrected time is saved as "entered later" with a note in the audit log. All of this happens inside the app, with no notifications.
Full-screen timer: big digits for procedures, readable from a distance (⋯ → Full-screen timer). It shows the time only, plus Pause and Stop. Auto-lock still applies, so for long procedures set a longer auto-lock first.
Other days: use ‹ › or tap the date in the toolbar to show another day in the same grid; Today jumps back. Rows typed on a past day are marked "entered later".
Same patient, more than one encounter (v9p)
When you see a patient again (or bill a second encounter for them), tap any cell in their row: the row number turns into a blue + same button. Tap it (on a computer, hover the row number and click). You can also use ⋯ → Same patient: new row below .
A new row appears right under the patient's last row that day, with the patient name, MRN / PHN, Facility #, Functional centre and H/C copied (and the Minor / Obstetric flags). In, Out, minutes, units, fee codes, Dx, modifiers and notes are blank ; the cursor goes to In. Type the time when you know it; the row then sorts by time like any other.
Rows for the same patient are grouped: a blue bar on the left of the name, and under the first row the name and MRN show lighter with a ″ mark. Every row still stores the full name and number, so reports, CSV and Excel show them on every line.
Each encounter counts on its own. The totals row says, for example, 6 encounters · 4 patients (the patients count shows when someone has more than one encounter). Rows count as the same patient when they were made with Same patient, or have the same MRN / PHN.
Premium units (TEV, TNTP, …) and minutes add up across all the encounters as usual.
Changing the name or MRN on one row changes only that row. If other encounters of that patient still have the old one, a message offers Apply to all ; tap it to update them too (one Undo reverts it).
One ↶ Undo removes the added row. ⋯ → Same patient: start a new timer now still starts a running encounter right away (and stops the first one if it was running).
Undo and Redo (v9p)
The ↶ (Undo) and ↷ (Redo) buttons sit in the toolbar above the grid, so they're always on screen without scrolling, on a phone too. A short message says what was undone, for example Undone: Fee code edited or Undone: row deleted . Hold the pointer over ↶ on a computer to see what it will undo.
What can be undone: typing over or clearing a cell; deleting or clearing rows (a deleted row comes back in its place with everything in it, including extra Dx codes, units, facility and functional centre); codes filled in from Fee Desk (fee, Dx and modifiers added together undo in one step); Facility # and Functional centre picks; unit changes (01–20); and changes that touch several rows at once.
Keyboard: Ctrl-Z / ⌘Z undoes, Shift-Ctrl-Z / ⇧⌘Z or Ctrl-Y redoes. While you are typing in a cell (before Tab or Enter), Ctrl-Z undoes your typing in that cell, like any text box.
Each day has its own history: up to 60 steps per day sheet, for today and the 3 most recently edited days. Making a new change after undoing clears the Redo steps.
Kept safely: the history is encrypted with your data (the same key) and survives locking, closing and reopening the app. It is re-encrypted when you change your passcode, and cleared when you import a backup.
Photos: photos of a deleted row are kept until the app locks, so Undo brings them back. Undoing a delete after the app has locked restores the row without its photos (the message says so).
Every undo and redo is a normal saved change, recorded in the audit log ("Undo: …"). Retention clean-up and Delete all data can't be undone.
Open details (⋯ → Open details) for segments, photos and multi-code search (section 5). Patient name and MRN/PHN never go into URLs or console logs.
In the details editor, the quick buttons (now, 5, 15, 30 min ago, 1 h ago, End now ) fix start or end times in one tap. + Add time segment adds another stretch.
If times overlap another entry, you'll see a warning. Check the times, or tap Save anyway if it's correct (for example, two patients seen together).
Timers use clock times, so they keep counting when the app is locked, in the background, or the phone is off.
Units are shown as a guide: full 15-minute blocks, plus 1 if the remainder is 8 minutes or more (38 min = 3 units). Always confirm time-based billing rules in the Alberta SOMB.
On a phone the grid scrolls sideways when it is wider than the screen; nothing is pinned, so the patient name scrolls with the other columns.
5. Entry details: add time, same patient, notes
Tap any encounter, call-back or on-site entry to open its details . A row of three buttons sits at the top:
+ Add time: tap +5 , +15 or +30 min . On a finished or paused entry the end moves later (never past now; any remainder moves the start earlier). On a running timer the start moves earlier. The change is saved right away, marked "entered later" and kept in the audit log, and Undo appears beside it. New segment (start / end)… opens the editor with a new time segment to fill in.
↔ Same patient, new encounter: starts a new timer for the same patient. The room/label, initials, chart/MRN, setting, facility and the Minor/Obstetric flags are carried over. Fee codes, diagnostic codes, notes and photos are left blank. If the first encounter is still running, it stops first. The two entries are linked: each shows a Same patient line in its details (tap it to jump to the other), History rows show ↔ , and the CSV report has a same_patient column. This is different from Track again , which copies only the codes and never patient details.
✎ Edit: opens the full editor. Every field can be changed: start and end times and segments, room/label, initials, chart/MRN, setting, type, facility, fee codes, modifier codes 1 and 2, diagnostic codes, Minor/Obstetric flags, call-back type and time called, linked encounters and photos. Save records the before and after in the audit log. Cancel returns to the details without changes.
Below the buttons is a summary of the entry: date and times, minutes, units and time periods, patient details, setting and facility, codes with diagnostic codes, modifiers, retention, same-patient links and photos.
Notes. An entry can have several notes, each with its own date and time.
Tap + Add note , type up to 1000 characters, and tap Save note . Notes save straight away, encrypted with the entry.
Each note has Edit and Delete . Edited notes show "(edited HH:MM)". A delete asks first. Every add, edit and delete is kept in the audit log, so a deleted note can still be found in the entry's history.
The Billing notes column is a separate short note (up to 500 characters, edited in the notes editor, section 4) that goes into reports. A ✎ on a row means the entry also has dated notes.
Notes from earlier versions (the single short note) were moved into the first note automatically.
Notes are left out of reports unless you tick Include notes when you create the report (section 12).
Quick actions from a row. On Today or History, tap ⋯ at the end of a row, or press and hold the row number (right-click on a computer), to get Add time , Add note , Same patient, new encounter , Open details and more.
6. Track again and code sets
The Track again chips (Today → ⋯ More ) show your recent and favourite combinations, for example 03.03A · 780 . Tap one to start a timer with that setting, facility, fee code(s) and ICD-9 code(s) already filled in.
Tap ☆ on a chip to save it as a favourite code set (★). Favourites come first. Tap ★ to remove it.
In any saved encounter's details, Track again (codes only) starts a new timer with the same codes, and ☆ Save code set saves them as a favourite.
Only billing fields are copied. Room labels, initials, chart numbers, notes and photos are never copied. To carry the patient over instead (with blank codes), use Same patient, new encounter (section 5).
7. Past entries and "Entered later"
For a quick past entry, go to the day with ‹ › in the toolbar and type the row with its In and Out times. Or use ⋯ More → + Add past entry on Today for something you didn't time live, or tap an empty spot in the day timeline. Set the start and end, add details, and save.
Last stop sets the start to when your previous entry today ended, so back-to-back patients have no gaps.
Start −5 / +5 and End −5 / +5 nudge the times by 5 minutes. Length +15 / +30 extends the end. Times can't go into the future.
The entry shows its time-period split as you change the times.
To keep the record honest, the app marks an entry Entered later when:
a new entry starts more than 2 minutes before it was saved (back-dated), or
you change the times of an existing entry, including with + Add time .
The badge shows when it was created and last edited. It also appears in reports (the entered_later and last_edited columns) and in the audit log. It isn't an error. It shows the times were entered afterwards rather than timed live.
8. Billing and diagnostic codes
In the spreadsheet, type or paste a fee or ICD-9 code into the cell, or pick it in MedBilling Fee Desk:
Pick a code in Fee Desk (v9g)
Tap the Fee code or Diagnosis (ICD-9) cell of the row, then tap ↗ in that cell (or ⓘ beside a code that is already there, to start from that code). The row's ⋯ menu has the same two choices.
Fee Desk opens in pick mode . A slim bar says Picking for MedBilling Logs: tap a code to send it, or + to pick several (up to 10 fee, 10 ICD-9, 10 modifiers) · Modifiers · Cancel (Fee Desk v36 says 3 of each; outside Alberta, or with an older Fee Desk: Picking a code for MedBilling Logs, tap a code to send it back · Cancel ).
Tap a billing code: a search result, a favourite or recent code, a code in the price list, or the big code on its page (also Use … in MedBilling Logs ). Tap Details on a result to read it first.
Tap an ICD-9 code: in an ICD-9 search, in Suggested ICD-9 on a billing code's page, or Use .
You are back in MedBilling Logs with the code in the same cell of the same row, saved, with the cursor in that cell and a short message such as 03.03A added .
Several fee codes: the code is added after the ones already in the cell (separated by a comma). A code already in the cell is not added twice.
Diagnostic codes (one tapped code): it goes beside the first fee code that has no Dx yet; if every fee code already has one, it is added after the others (v9n). An existing Dx is never replaced, a code already in the row is not added twice, and the message (for example V22.1 added beside 03.04A ) offers Undo .
A billing code tapped while picking a Dx (or an ICD-9 code while picking a fee code) goes into the matching column of the same row.
Cancel in the bar goes back without changes. A pick that isn't finished expires after 30 minutes.
If MedBilling Logs locked meanwhile, the code waits: unlock and it is added. MedBilling Logs stays unlocked for at most 10 minutes while Fee Desk is open for a pick, then locks as usual.
Privacy: only the code, its kind and a random one-time token travel between the two apps; no name, MRN or other patient information. Fee Desk only returns to MedBilling Logs itself.
iPhone and iPad: works in Safari and from the Home Screen icon. In the MedBilling Logs app, Fee Desk opens in an in-app browser and iOS may ask Open in "MB Logs"? : tap Open .
Several codes at once: fee codes, ICD-9 and modifiers (v9l, up to 10 each from v9m)
In Fee Desk's pick mode (Alberta) you can send up to 10 fee codes, 10 ICD-9 codes and 10 modifier codes back to the same row in one go (Fee Desk v37 or later; Fee Desk v36 allows 3 of each). A plain tap still sends one code straight away, as before.
Tap + beside a code to select it instead of sending it. While something is selected, tapping other codes adds them too (tap again to remove). Modifiers in the pick bar opens Fee Desk's modifier search (explicit Alberta modifiers from the official SOMB list).
Tap a favourite that has linked codes (its linked ICD-9 codes and modifiers, set up in Fee Desk) and the whole set is selected for you to check.
A tray above the pick bar shows the selection (Fee · ICD-9 · Modifiers, with counters such as 1/10 ; a long selection scrolls inside the tray). Remove any with × , then tap Send to MedBilling Logs .
Back in MedBilling Logs the codes are in the row you started from, saved, and the filled cells flash briefly. A short message says what was added, for example Added: Fee 03.03A · Dx 250.00 · Modifier 1 CMGP , with Undo .
Nothing is overwritten. New codes are added after what is already in each cell; a code already in the row is not added twice (the message lists it as Already in this row ).
Fee code: added after the existing ones.
Dx: every ICD-9 code sent is kept. A Dx linked to a fee code goes beside that fee code; others go on fee codes that have no Dx yet, newly added ones first; any more are added after them in the Dx cell (the row grows to show them all). An existing Dx is never replaced.
Modifiers: Modifier code 1 is for the row's first fee code and Modifier code 2 for its second or later fee code. A modifier linked to a fee code in Fee Desk (or sent with just one fee code) goes in the cell for that fee code's place in the row; other modifiers go in Modifier code 1. A modifier already in either cell is not added again.
Only codes and the one-time token travel, as with single codes. Works in Safari, the Home Screen app and the MedBilling Logs iPhone app (Fee Desk returns with the app's own link). Older versions of Fee Desk keep sending one code at a time.
Open an encounter. Under Fee codes and diagnostic codes , check the fee schedule (province) on the right.
In Billing code , type a code or a few words and tap a suggestion to add it.
In Diagnosis (ICD-9) beside it, type a code or words and tap a suggestion. Each billing code you add gets its own diagnostic code field on the same row. You can also type any code that isn't in the list.
Suggestions come from lists built into the app (fee codes from MedBilling Fee Desk; ICD-9 from Alberta Health's diagnostic code supplement). They work offline and nothing you type is sent anywhere.
Look up in Fee Desk opens MedBilling Fee Desk in a new tab with fees, rules and notes. It goes straight to the code only if what you typed is a known code. Otherwise it opens Fee Desk's home page. No patient information is ever put in the link.
Opening Fee Desk from an open entry no longer locks this app (unless you stay away longer than the auto-lock time). Your unsaved entry is kept as an encrypted draft and reopens after you unlock. To bring a code back automatically, use ↗ in the spreadsheet (pick mode, above).
Nova Scotia (approval pending): code lookup is unavailable until permission is granted, so no Nova Scotia code list is included. Type the code manually (it is saved exactly as typed) and confirm it in the official MSI Physician’s Manual. Codes already saved in your entries are kept.
Codes and fees are a convenience. Always confirm in the official Schedule of Medical Benefits before you submit claims.
9. Photos and the lock
In an encounter, tap Take photo or Attach photo . Photos are resized, location data is removed, and they are stored only inside the app, encrypted. They aren't saved to your camera roll.
Tap a thumbnail to view it or Delete photo .
Move clinical photos into the official patient record, then delete them here.
The lock: the app locks after a period without use (Settings → Lock; 1 to 15 minutes, default 10; time spent in another tab or app counts). Switching tabs or apps does not lock it by itself; closing the tab does. Tap Lock at the top right to lock right away. The camera doesn't trigger a lock while you take a photo.
10. History, week strip and timeline
History shows every day as the same spreadsheet as Today, and you can edit cells there too. Open in Today shows that day in the Today grid.
Rows are grouped by day (newest first) and by week. Each day shows its totals: number of encounters, Hospital minutes/units (H), Clinic minutes/units (C), call-backs (CB) and time on site.
Double-click a row number to open the details. Tap ⋯ (or press and hold the row number) for quick actions: Add time, Add note, Same patient, Edit. In an entry, History of this entry shows every change made to it.
Each day also shows its time periods (for example Eve 45m/3u · Late 20m/1u ).
Week strip (top of History; Today has a compact date control with ‹ › and Today ): Monday to Sunday with the time (e.g. 45m or 6h11) and units under each day. Today is outlined, holidays are tinted, and ✓ marks reviewed days. Tap ‹ › or swipe to change weeks, and tap a day to jump to it. Tap Today (it turns teal when you're looking at another week) to go straight back to the current week; in History it also scrolls to today's entries. Today and This week totals sit beside it. On Today, the totals row at the bottom of the grid splits the day by Hospital, Clinic and time period.
Timeline (Today, or a day in History) draws the day as blocks: on-site time as a shaded band, Hospital in teal, Clinic in orange, call-backs dashed. Gaps and overlaps are easy to see. Tap a block to open it, or tap an empty spot to add a past entry at that time.
11. Review a day or week
Before you submit claims, tap ⋯ More → Review day on Today, or Review / Review week in History. The checklist shows:
Fix: timers still running or paused, and arrivals with no departure. These must be cleared before you can mark the period reviewed.
Check: entries with no fee code or no diagnostic code, and overlapping entries.
Info: entries marked "entered later".
Tap an item to open and fix it. Then tap Mark reviewed . The day shows ✎ Reviewed and the audit log records it. If any entry on that day changes later, the mark is removed, the day shows Edited after review , and the audit log records that too.
12. Encrypted reports (PDF, Word, Excel, CSV) and sharing safely
Every export is encrypted. Reports and the audit log are always delivered inside an AES-256 password-protected .zip (WinZip AES format). There is no unencrypted export.
On Today tap Report / share , or on History pick From and To dates and tap Create report .
Choose PDF , Word , Excel or CSV . For PDF and Word, tick Include photos only if you need them. Include notes is off by default; tick it only if the recipient needs your notes.
Tap Create encrypted file… . Read the privacy notice and tick I understand (the tick is remembered until the app locks).
Type an export password twice. Tap Show to check what you typed. A live meter shows its strength and says plainly why a password is refused.
Tap Encrypt file , then Share… or Download . The file is named like MedBillingLogs_2026-10-06.zip . Neither the file name nor the share text ever includes patient details or the password.
Export password rules
You choose it, and it must be different from your app passcode or passphrase . The app checks this on the device, in memory only.
At least 12 characters with 3 of these 4: lowercase, UPPERCASE, numbers, symbols. Or a passphrase of 16+ characters (several unrelated words).
Refused: common or leaked-style passwords (like Password2026! or a city or team name), sequences (abcd , 1234 ), keyboard patterns (qwerty ), repeated characters (aaa ), and anything containing a patient's name or MRN/PHN.
It is never stored . You type it for each export. If you tick Remember it for this session only , it stays in memory until the app locks, then it is cleared. Face ID, Touch ID, passkeys and the quick PIN never unlock exports.
If it is lost, no one can open the file, including the developer. Zip encryption uses a weaker key-stretching step than the app itself, so a long password matters.
Sending it
Send the .zip and its password separately : never in the same email or message (for example, send the file through your clinic's secure system and give the password by phone). Use only channels your custodian approves, and delete copies (Downloads, email attachments, Files) you no longer need. The app itself never sends exports anywhere.
Opening the encrypted .zip
The recipient needs an app that supports AES-256 zip . The built-in tools on iPhone, Mac and Windows don't:
iPhone / iPad: the Files app can unzip ordinary zips but can't open AES-256 encrypted zips . Install the free iZip app (App Store; it says it opens "password protected and AES encrypted ZIP files"; the free version shows ads). In Files, touch and hold the .zip, tap Share , choose iZip , then type the password.
Mac: double-clicking (Archive Utility) can't open AES-256 zips . Use the free The Unarchiver (Mac App Store or theunarchiver.com) or Keka (keka.io): open the .zip with it and type the password. In Terminal: tar -xf FILE.zip --passphrase 'PASSWORD' .
Windows: File Explorer's built-in zip support doesn't open encrypted archives (Microsoft recommends a tool like 7-Zip). Install the free 7-Zip (7-zip.org), right-click the .zip, choose 7-Zip → Extract Here and type the password.
Android: use an archive app that supports AES zip.
Inside is the report (PDF, Word, Excel or CSV) with its usual contents: each entry with times, minutes, units, facility, patient name and MRN/PHN, billing and diagnostic codes and time periods, plus daily and overall totals in PDF, Word and Excel. Once unzipped, the report itself is not encrypted : open it on a secure device and delete the unzipped copy when you're done. The names of the files inside the zip are visible without the password, so they never contain patient details.
13. Audit log
Every create, edit, delete, start/pause/stop, undo, arrival/departure and import is recorded with its time and the before/after values. So are added time, same-patient links, each note added, edited or deleted, review marks (and their removal), favourite code sets, holiday settings, backup settings, backups made with Back up now, and automatic backup failures and recoveries (never the backup password). The log is encrypted and append-only.
Each record is chained to the one before it, so any change, removal or reordering is detected.
Settings → Audit log: Check log verifies the chain, Deleted entries lists what was deleted, Export log saves it as PDF or CSV (note text is left out unless you tick Include notes ).
14. Retention and backups
How long records are kept
At least 10 years from the last entry (CPSA; CMPA recommends at least 10 years).
Minor flag: the longer of 10 years or 2 years after the patient turns 18.
Obstetric flag: 10 years after the infant reaches majority (counted as 29 years).
Nothing is ever deleted automatically. Settings → Records past retention shows what is eligible, and you confirm before anything is removed. Any longer legal or College requirement comes first.
Backups
Your records exist only on this device. If the phone is lost, broken or reset, or the app or its website data is deleted, they're gone unless you have a backup.
Automatic backups (off until you turn them on) save a backup every hour or at the interval you choose: see section 15.
Settings → Encrypted backup (manual export and import) → Export , confirm your passcode, then save the file (medbilling-logs-backup-DATE.mblbackup ) somewhere safe that only you control. It's encrypted with your current passcode.
Import loads a backup (you need the passcode it was made with). It's added to what's already there. Use it to move to a new phone.
Under every backup button (Back up now in Settings → Backups, the reminder banner on Today, and Export) a short line says how the file is encrypted, which password protects it, and that a lost password means no one, including the developer, can open or recover it (section 15).
Reminders: by default the app reminds you monthly with a banner on Today (Back up now or Remind me later ). Change it to weekly, every 3 months or off under Backup reminder . "Last backup" shows when you last made one.
15. Automatic backups
Open Settings → Backups . Automatic backups are off until you turn them on. Every change to these settings is kept in the audit log (the password itself never is).
Settings
Automatic backups on or off.
Frequency: every hour (default), every 2 hours, every 4 hours, or daily. If nothing changed since the last backup, that interval is skipped (a backup is still saved at least once a day).
Keep last: 24 backups by default (6 to 168). Older automatic backups in the folder are removed (rotated) together with their readable copies. Other files in the folder are never touched.
Choose backup location (or Change location ): pick the folder once. The first backup is saved straight away.
Last backup shows the time, the folder, how many files and their size, and the status (OK, next backup time, or what went wrong).
Back up now saves a backup immediately.
What protects each backup (shown under every backup button)
Under Back up now , the reminder banner and Export , two or three short lines always say:
The encryption: for example Encrypted with AES-256 (.mblbackup); readable copies in an AES-256 password-protected .zip.
The password: your app passcode, or your app passcode for the .mblbackup and your separate backup password for the .zip.
If the password is lost, no one can open or recover the backup, including the developer. There is no reset and no copy anywhere.
What's in each backup
Encrypted backup (.mblbackup) , always included: every entry, note, photo and setting, encrypted with AES-256 (AES-GCM, key from your passcode with PBKDF2, 600,000 rounds). It opens only with the app passcode you had when it was made, through Import . It's the only file the app can restore.
Readable copies (off by default): tick PDF , Markdown (.md) , Word (.docx) and/or Excel (.xlsx) . They list your entries like a report (all dates). Notes are left out unless you tick Include notes in readable copies .
Readable copies contain patient details (room, initials, chart/MRN, codes and, if ticked, notes). They are always put inside an AES-256 password-protected .zip . Once someone unzips them they are not encrypted, so save backups only to a secure location you control.
The .zip password
Use my app passcode (default), or Use a separate backup password . A separate password needs at least 12 characters and passes a strength check. It is kept only inside the app's encrypted storage, never in plain text, and never in the audit log or the backup files.
A .zip password can be guessed much faster than your passcode can be attacked in a .mblbackup (zip files use a weaker key-stretching step). Use a long password, such as several words with numbers, especially if your passcode is short. The app warns you when it is.
Readable copies are always inside the AES-256 .zip; since version 9 there is no option to save them unencrypted.
Why not a password-protected PDF? The PDF library in the app can only make the older RC4 PDF encryption, not AES-256, so PDF copies go inside the AES-256 .zip instead.
Opening the password-protected .zip
Windows: 7-Zip (free) or WinRAR. File Explorer's built-in zip support can't open AES-256 zips.
Mac: The Unarchiver or Keka (both free), or Terminal: tar -xf FILE.zip --passphrase PASSWORD (or 7zz x FILE.zip if 7-Zip is installed). Double-clicking in Finder (Archive Utility) and the unzip command can't open AES-256 zips.
iPhone / iPad: the Files app can't open AES-256 zips; use the free iZip app. Android: use an archive app that supports AES zip. Details in section 12.
The .mblbackup is opened only by this app (Settings → Encrypted backup → Import ).
How it works on each device
Chrome or Edge on a computer: choose a folder once (for example in Documents, or a synced OneDrive, Google Drive or iCloud Drive folder). While the app is open and unlocked, a backup is saved at your interval, and again when the app locks or the tab is closed (if the browser allows the time). After the browser restarts, it may ask you once to Allow access to the folder again; a banner on Today asks for it.
iPhone and iPad app: choose a folder in Files (On My iPhone, iCloud Drive or another provider). Android app: choose a folder on the phone or in a cloud drive such as Google Drive. Backups are saved while the app is open, and the app tries to finish one when it goes to the background. Phones don't allow guaranteed background runs: if the app stays closed, no backups happen until you open and unlock it again.
Safari, Firefox and other browsers without folder access (including the Home Screen web app on iPhone): the app can't save to a folder by itself. With automatic backups on, a Backup reminder banner appears on Today at your interval. Back up now opens the share sheet (Save to Files, AirDrop…) or downloads the files; Later hides it until the next interval. Old copies aren't removed for you here.
Never while locked: the key that decrypts your data only exists while the app is unlocked, so nothing runs while it's locked or closed. The backup started when it locks uses data already in memory and finishes in the background where possible.
If a backup fails
A red banner on Today says what went wrong (for example the folder was moved or deleted, permission is needed, or the drive is full), with Try again and Backup settings . It never interrupts what you're doing, and your entries stay safe on this device. The app tries again automatically (within 15 minutes, or at your interval). Failures and recoveries are kept in the audit log.
16. Your data: Export my data, Import my data and moving
Export my data saves everything this app keeps on this device to one file (its name ends in -my-data- and the date). Keep the file somewhere safe; it is your copy.
In MedBilling Logs the file is locked with your passcode. You need that passcode to import it later.
Import my data (Settings) checks the file first and shows what it holds. Nothing changes until you choose Merge or Replace.
Merge adds what is in the file to what is already here. Nothing here is removed.
Replace makes this device match the file. Tick the confirmation box first. Replace is all or nothing: if anything goes wrong part-way, nothing on this device is changed.
Older backup files can still be imported. Fee Desk favourites files can only be merged.
This app is moving: when the app gets a new web address, a notice appears at the top of the app with the new address and four steps: Export my data, open the new address, Import my data there, then add the new address to your home screen. Not now hides the notice until you next open the app.
Your data stays in this browser at this address only, so it does not move to a new address by itself. Export it first.
17. Privacy, the law and your responsibility
Exports contain health information
An export contains health information. Keep it encrypted, and send the password separately, never in the same email or message. Store and send it only as permitted by Alberta's Health Information Act (HIA) , your custodian's or AHS (Alberta Health Services) privacy and information-security policies, and the privacy law and privacy commissioner's guidance in your own province or territory (e.g. the Alberta OIPC ). Delete copies you no longer need.
Your responsibility
You, as the custodian or as an affiliate of a custodian (for example AHS or your clinic), are responsible for collecting, using, storing, sending and disposing of this information in a compliant way. MedBilling Logs is designed to support compliance: data is encrypted on the device, every export is encrypted, and the app does not transmit exports or any data anywhere by itself. It is not certified or approved by AHS, the OIPC or any government body, and it is not legal advice. Check your custodian's policies, and contact your privacy officer, the CMPA or the OIPC if you are unsure.
Tips
Record only what you need for billing. Add a name or MRN/PHN only if you need it.
Keep your phone's own screen lock on, and use a passcode or passphrase you don't use anywhere else.
Keep the auto-lock short, and tap Lock before handing your phone to anyone. The full-screen timer shows only the time, so it is safe for others to see.
Share reports only through secure, approved channels. Don't leave copies in Downloads or email.
This is a personal billing log, not the medical record. Chart every encounter in the patient's chart.
If your phone is lost or data may be exposed, tell the custodian (e.g. AHS or your clinic) and contact the CMPA right away. A breach may have to be reported under the HIA.
The app has no accounts, analytics or trackers, and it sends nothing anywhere. Files leave the device only when you share or download them.
18. FAQ and troubleshooting
How do I log a second encounter for the same patient? Tap a cell in the patient's row, then the blue + same button in the row number (or ⋯ → Same patient: new row below). The name, MRN / PHN, facility, functional centre and H/C are copied; times and codes are left blank. See section 4.
The app asks for Face ID by itself. Can I stop that? Yes: Settings → Lock → Easy unlock , turn it off, and the passcode is used. Face ID is the default from v9p; it never replaces the passcode, which always works.
Face ID didn't work or I cancelled it. Type your passcode; the box is ready. Tap Unlock with Face ID to try again. If iOS was told not to allow Face ID, turn it back on in the iPhone's Settings → MedBilling Logs → Face ID , then in the app's Settings → Lock.
Undo is greyed out. There's nothing to undo on the day you're looking at. Each day sheet has its own history, and importing a backup clears it.
I forgot my passcode or passphrase. It can't be recovered. Use Forgot passcode? to erase and start over, then import a backup if you remember its passcode.
Face ID / fingerprint / passkey stopped working. Use your passcode or passphrase; it always works. Easy unlock turns off after a passcode change, after the device's enrolled faces or fingers change, or if the passkey was deleted. Turn it on again in Settings → Lock → Easy unlock.
Can Face ID or a passkey open my exported files? No. Export passwords are always typed, must be different from your passcode, and are never stored.
I don't see "Unlock with a passkey" in my browser. Your browser doesn't support the passkey PRF extension (it needs Safari 18 or later, current Chrome or Edge, or Firefox 148 or later on a computer). The option is hidden rather than offered in a weaker form.
Does the timer stop when the app locks or the phone sleeps? No. Timers use clock times and keep counting. Unlock and tap Stop (or fix the end time) when you're done.
I opened Fee Desk and the app locked. Did I lose my entry? No. An open entry is saved as an encrypted draft and reopens after you unlock. A code you picked in Fee Desk waits and is added right after you unlock.
I tapped a code in Fee Desk but nothing came back. Open Fee Desk with ↗ in the Fee code or Dx cell (the slim yellow "Picking … for MedBilling Logs" bar must show). Plain Fee Desk links only look codes up. Picks expire after 30 minutes.
Can I bring back several codes at once, with modifiers? Yes (Alberta, v9l; up to 10 of each from v9m with Fee Desk v37). In Fee Desk's pick mode tap + beside up to 10 fee codes, 10 ICD-9 codes and 10 modifiers (or tap a favourite with linked codes), check the tray and tap Send to MedBilling Logs . They are added to the row without overwriting anything: fee codes after the existing ones, Dx beside their fee codes and any extra Dx after them (none dropped), modifiers in Modifier code 1 (first fee code) or Modifier code 2 (second or later). See Several codes at once .
I couldn't scroll back up to my first rows on iPhone. Fixed in v9o. In v9n the whole page could slide up (for example while the keyboard was open), hiding the header row and the first rows under the bar at the top, and a swipe inside the grid couldn't bring them back. Now the grid is the only thing that scrolls on Today; the page snaps back as soon as the keyboard closes.
Where did the footer (disclaimers, Fee Desk link, manual) go? On Today it's after the last row: scroll down past your rows to see it. On the other tabs it's at the bottom of the page as before.
How do I enter units for TEV, TNTP, TNTA, TWK, TST or TDES? Type the code in a Modifier cell, then tap the u? button beside it and pick 01–20 (each unit is 15 minutes: 02 · 30 min). See After-hours premium units .
Is National Day for Truth and Reconciliation a holiday in the app? No. It isn't on the AHCIP list (GR 1.2). If you need a day treated as a holiday anyway, tick Today is a statutory holiday in Settings that day.
Which facility list is used? Alberta Health's "Facility and Functional Centre Definitions and Facility Listing" effective 1 July 2026 (411 facilities), built into the app; it works offline. Type any other number by hand.
The rows used to stop at 40. Is there a limit? No. Keep pressing Tab, Enter or Next: when you're within 5 rows of the end, 10 more rows appear. Scrolling adds up to 30 by itself; after the footer shows, scrolling on adds 10 more each time. Empty rows aren't saved or counted, so they never change your totals or reports.
My entries are missing. Check you opened the same app you used before (on iPhone, the Home Screen app and Safari keep separate data), and that you're on the same device. If website data was cleared or the app was removed, restore from a backup.
How do I move to a new phone? On the old phone, Export a backup. On the new phone, install the app, create a passcode, then Import the backup with the passcode it was made with.
Why does an entry say "Entered later"? It was back-dated, time was added, or its times were edited. See section 7.
It says the times overlap. Another entry covers the same time. Fix the times, or tap Save anyway if it's correct.
Does it work without internet? Yes, after the first open. Only the Resources and Fee Desk links need a connection.
The app says "Updating to the new version…" Wait a few seconds. If it says "Update ready", close the app completely and reopen it. Your data isn't affected.
A diagnostic code isn't in the suggestions. Type it anyway; any code is accepted. Use Look up in Fee Desk to check it.
Are the units and codes official? No. They're a guide. Confirm in the Alberta Schedule of Medical Benefits, or contact AMA billing support.
The time period or holiday looks wrong. Periods follow America/Edmonton time and your list of periods. Check Settings → Time periods and holidays : switch a holiday on or off, or tick "Today is a statutory holiday". Always verify against the current SOMB.
Why did a red timer prompt appear when I unlocked? A timer ran past the red limit (3 hours by default). Stop it now or at the real end time, or keep it running. Change the limits under Settings → Timers.
The full-screen timer went away. Auto-lock still applies. Unlock and reopen it with ⛶, or set a longer auto-lock before a long procedure.
I tapped Stop or Delete by mistake. Tap ↶ (Undo) in the toolbar, or Ctrl-Z / ⌘Z on a computer; it works for the rest of the day, even after the app was closed (v9p). The Undo in the message works within 5 seconds too. After that, edit the entry (a corrected time is marked "entered later"), or find deleted entries under Settings → Audit log → Deleted entries.
Can I use it on a computer or tablet? Yes. Open the same web address in Chrome, Edge, Safari or Firefox. On a tablet or computer, Today shows your controls on the left and the day's entries on the right. History becomes a table with end time, units, setting and facility, and time periods. Settings and Resources show in columns. Data stays in that browser on that device, encrypted. To move data between devices, use an encrypted backup (Settings → Encrypted backup).
Can I add time to an entry, or start another encounter for the same patient? Yes. Open the entry (or tap ⋯ on its History row) and use + Add time or Same patient, new encounter . See section 5.
Where did my old note go? It is now the first note in the entry's Notes list, with the time the entry was created.
Why aren't my notes in the report? For privacy, notes are only included when you tick Include notes before tapping Create encrypted file.
Why is my report a .zip? Every export is encrypted with AES-256 to protect patient information. Open it with iZip (iPhone/iPad), The Unarchiver or Keka (Mac) or 7-Zip (Windows) and the export password. See section 12.
Why was my export password refused? The message under the password says why: too short, too predictable (common words, sequences, repeats), contains a patient's name or MRN/PHN, or is the same as your app passcode.
How do I set up automatic backups? Settings → Backups : turn on Automatic backups , pick how often and how many to keep, then Choose backup location . In Safari you get an hourly reminder instead. See section 15.
I can't open the backup .zip on my Mac or PC. It's AES-256 encrypted, which Finder and Windows File Explorer can't open. Use 7-Zip on Windows, or Keka / The Unarchiver on a Mac (or tar -xf FILE.zip --passphrase PASSWORD in Terminal), with the backup password shown under Back up now.
I lost my backup password. No one can open those backups, including the developer. Set a new separate password (or switch back to the app passcode) and tap Back up now so new backups use it.
A red "Automatic backup didn't work" banner appeared. Tap Backup settings and Change location to choose the folder again, or Allow access if the browser asks. Your entries are safe on the device in the meantime.
Where can I get advice? CMPA (1-800-267-6522), AMA billing support, or the CPSA. Links are in the Resources tab.
MedBilling Logs is general information, not legal, billing or medico-legal advice. Part of JFdeLara's Studio.