{"text_format":"2","workbook":"xlsx","n_sheets":2,"sheets":["Dashboard","Tracker"],"not_rendered":{"charts":0,"images":3,"macros":0,"external_links":0,"defined_names":0,"comments":2,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"run_cost":"one","rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"Dashboard","index":0,"n_rows":24,"n_cols":9,"rows_kept":24,"cut":false,"hidden":false,"merged":[[0,1,0,8],[0,0,1,0],[1,1,1,8],[2,0,2,1],[2,2,2,3],[2,4,2,5],[2,6,2,8],[3,0,3,1],[3,2,3,3],[3,4,3,5],[3,6,3,8],[5,0,5,1],[5,3,5,4],[5,6,5,7],[6,0,6,8],[8,0,8,8],[9,2,9,8],[10,2,10,8],[11,2,11,8],[12,2,12,8],[13,2,13,8],[14,2,14,8],[15,2,15,8],[16,2,16,8],[17,2,17,8],[18,2,18,8],[19,2,19,8],[20,2,20,8],[21,2,21,8],[23,0,23,8]]}
[null,"Invoice and Payment Tracker   ·   by Tideplan"]
[null,"Your numbers at a glance. Enter jobs on the Tracker tab, this updates itself.     tideplan.io"]
["UNBILLED",null,"OUTSTANDING",null,"OVERDUE",null,"PAID"]
[{"$f":"SUMIF(Tracker!$H$4:$H$1000,\"Unbilled\",Tracker!$C$4:$C$1000)","v":null},null,{"$f":"SUMIF(Tracker!$H$4:$H$1000,\"Sent\",Tracker!$C$4:$C$1000)","v":null},null,{"$f":"SUMIFS(Tracker!$C$4:$C$1000,Tracker!$H$4:$H$1000,\"Sent\",Tracker!$F$4:$F$1000,\"<\"&(TODAY()-Tracker!$B$2))","v":null},null,{"$f":"SUMIF(Tracker!$H$4:$H$1000,\"Paid\",Tracker!$C$4:$C$1000)","v":null}]
[]
["ANNUAL INCOME GOAL",null,60000,"PAID THIS YEAR",null,{"$f":"SUMIFS(Tracker!$C$4:$C$1000,Tracker!$H$4:$H$1000,\"Paid\",Tracker!$I$4:$I$1000,\">=\"&DATE(YEAR(TODAY()),1,1),Tracker!$I$4:$I$1000,\"<=\"&DATE(YEAR(TODAY()),12,31))","v":null},"PROGRESS TO GOAL",null,{"$f":"IF($C$6=0,0,$F$6/$C$6)","v":null}]
[{"$f":"REPT(\"▓\",ROUND(MIN($I$6,1)*40,0))&REPT(\"░\",40-ROUND(MIN($I$6,1)*40,0))","v":null}]
[]
[{"$f":"\"INCOME  ·  \"&YEAR(TODAY())","v":null}]
["Month","Income"]
[{"$f":"DATE(YEAR(TODAY()),1,1)","v":null},{"$f":"SUMIFS(Tracker!$C$4:$C$1000,Tracker!$H$4:$H$1000,\"Paid\",Tracker!$I$4:$I$1000,\">=\"&$A11,Tracker!$I$4:$I$1000,\"<=\"&EOMONTH($A11,0))","v":null},{"$f":"REPT(\"▓\",ROUND(IF(MAX($B$11:$B$22)=0,0,B11/MAX($B$11:$B$22))*24,0))","v":null}]
[{"$f":"DATE(YEAR(TODAY()),2,1)","v":null},{"$f":"SUMIFS(Tracker!$C$4:$C$1000,Tracker!$H$4:$H$1000,\"Paid\",Tracker!$I$4:$I$1000,\">=\"&$A12,Tracker!$I$4:$I$1000,\"<=\"&EOMONTH($A12,0))","v":null},{"$f":"REPT(\"▓\",ROUND(IF(MAX($B$11:$B$22)=0,0,B12/MAX($B$11:$B$22))*24,0))","v":null}]
[{"$f":"DATE(YEAR(TODAY()),3,1)","v":null},{"$f":"SUMIFS(Tracker!$C$4:$C$1000,Tracker!$H$4:$H$1000,\"Paid\",Tracker!$I$4:$I$1000,\">=\"&$A13,Tracker!$I$4:$I$1000,\"<=\"&EOMONTH($A13,0))","v":null},{"$f":"REPT(\"▓\",ROUND(IF(MAX($B$11:$B$22)=0,0,B13/MAX($B$11:$B$22))*24,0))","v":null}]
[{"$f":"DATE(YEAR(TODAY()),4,1)","v":null},{"$f":"SUMIFS(Tracker!$C$4:$C$1000,Tracker!$H$4:$H$1000,\"Paid\",Tracker!$I$4:$I$1000,\">=\"&$A14,Tracker!$I$4:$I$1000,\"<=\"&EOMONTH($A14,0))","v":null},{"$f":"REPT(\"▓\",ROUND(IF(MAX($B$11:$B$22)=0,0,B14/MAX($B$11:$B$22))*24,0))","v":null}]
[{"$f":"DATE(YEAR(TODAY()),5,1)","v":null},{"$f":"SUMIFS(Tracker!$C$4:$C$1000,Tracker!$H$4:$H$1000,\"Paid\",Tracker!$I$4:$I$1000,\">=\"&$A15,Tracker!$I$4:$I$1000,\"<=\"&EOMONTH($A15,0))","v":null},{"$f":"REPT(\"▓\",ROUND(IF(MAX($B$11:$B$22)=0,0,B15/MAX($B$11:$B$22))*24,0))","v":null}]
[{"$f":"DATE(YEAR(TODAY()),6,1)","v":null},{"$f":"SUMIFS(Tracker!$C$4:$C$1000,Tracker!$H$4:$H$1000,\"Paid\",Tracker!$I$4:$I$1000,\">=\"&$A16,Tracker!$I$4:$I$1000,\"<=\"&EOMONTH($A16,0))","v":null},{"$f":"REPT(\"▓\",ROUND(IF(MAX($B$11:$B$22)=0,0,B16/MAX($B$11:$B$22))*24,0))","v":null}]
[{"$f":"DATE(YEAR(TODAY()),7,1)","v":null},{"$f":"SUMIFS(Tracker!$C$4:$C$1000,Tracker!$H$4:$H$1000,\"Paid\",Tracker!$I$4:$I$1000,\">=\"&$A17,Tracker!$I$4:$I$1000,\"<=\"&EOMONTH($A17,0))","v":null},{"$f":"REPT(\"▓\",ROUND(IF(MAX($B$11:$B$22)=0,0,B17/MAX($B$11:$B$22))*24,0))","v":null}]
[{"$f":"DATE(YEAR(TODAY()),8,1)","v":null},{"$f":"SUMIFS(Tracker!$C$4:$C$1000,Tracker!$H$4:$H$1000,\"Paid\",Tracker!$I$4:$I$1000,\">=\"&$A18,Tracker!$I$4:$I$1000,\"<=\"&EOMONTH($A18,0))","v":null},{"$f":"REPT(\"▓\",ROUND(IF(MAX($B$11:$B$22)=0,0,B18/MAX($B$11:$B$22))*24,0))","v":null}]
[{"$f":"DATE(YEAR(TODAY()),9,1)","v":null},{"$f":"SUMIFS(Tracker!$C$4:$C$1000,Tracker!$H$4:$H$1000,\"Paid\",Tracker!$I$4:$I$1000,\">=\"&$A19,Tracker!$I$4:$I$1000,\"<=\"&EOMONTH($A19,0))","v":null},{"$f":"REPT(\"▓\",ROUND(IF(MAX($B$11:$B$22)=0,0,B19/MAX($B$11:$B$22))*24,0))","v":null}]
[{"$f":"DATE(YEAR(TODAY()),10,1)","v":null},{"$f":"SUMIFS(Tracker!$C$4:$C$1000,Tracker!$H$4:$H$1000,\"Paid\",Tracker!$I$4:$I$1000,\">=\"&$A20,Tracker!$I$4:$I$1000,\"<=\"&EOMONTH($A20,0))","v":null},{"$f":"REPT(\"▓\",ROUND(IF(MAX($B$11:$B$22)=0,0,B20/MAX($B$11:$B$22))*24,0))","v":null}]
[{"$f":"DATE(YEAR(TODAY()),11,1)","v":null},{"$f":"SUMIFS(Tracker!$C$4:$C$1000,Tracker!$H$4:$H$1000,\"Paid\",Tracker!$I$4:$I$1000,\">=\"&$A21,Tracker!$I$4:$I$1000,\"<=\"&EOMONTH($A21,0))","v":null},{"$f":"REPT(\"▓\",ROUND(IF(MAX($B$11:$B$22)=0,0,B21/MAX($B$11:$B$22))*24,0))","v":null}]
[{"$f":"DATE(YEAR(TODAY()),12,1)","v":null},{"$f":"SUMIFS(Tracker!$C$4:$C$1000,Tracker!$H$4:$H$1000,\"Paid\",Tracker!$I$4:$I$1000,\">=\"&$A22,Tracker!$I$4:$I$1000,\"<=\"&EOMONTH($A22,0))","v":null},{"$f":"REPT(\"▓\",ROUND(IF(MAX($B$11:$B$22)=0,0,B22/MAX($B$11:$B$22))*24,0))","v":null}]
[]
["Doing this by hand? Tideplan does it automatically:  tideplan.io/client-payment-tracker"]

{"sheet":"Tracker","index":1,"n_rows":55,"n_cols":9,"rows_kept":55,"cut":false,"hidden":false,"merged":[[0,1,0,8],[1,2,1,8],[54,0,54,8]]}
[null,"Tracker     Set each job's Status (Unbilled → Sent → Paid); the Dashboard tab updates automatically."]
["OVERDUE AFTER",0,"days past the due date. Drives Overdue, Days late and the red shading below."]
["Client","Description","Amount","Invoice #","Issued","Due","Days late","Status","Date paid"]
["Byrne Legal","Design retainer (January)",1500,"INV-001","2026-01-05","2026-02-04",{"$f":"IF(AND($H4=\"Sent\",$F4<>\"\",$F4<TODAY()-$B$2),TODAY()-$F4,\"\")","v":null},"Paid","2026-01-28"]
["Vance & Co","Brand retainer (February)",2000,"INV-002","2026-02-02","2026-03-04",{"$f":"IF(AND($H5=\"Sent\",$F5<>\"\",$F5<TODAY()-$B$2),TODAY()-$F5,\"\")","v":null},"Paid","2026-02-25"]
["Meridian Studio","Website rebuild milestone",2600,"INV-003","2026-02-10","2026-03-12",{"$f":"IF(AND($H6=\"Sent\",$F6<>\"\",$F6<TODAY()-$B$2),TODAY()-$F6,\"\")","v":null},"Paid","2026-02-18"]
["Highfield Clinic","Content design, patient leaflets",1200,"INV-004","2026-02-28","2026-03-30",{"$f":"IF(AND($H7=\"Sent\",$F7<>\"\",$F7<TODAY()-$B$2),TODAY()-$F7,\"\")","v":null},"Paid","2026-03-12"]
["Marlow Hotel","Hotel collateral, menu refresh",1400,"INV-005","2026-03-05","2026-04-04",{"$f":"IF(AND($H8=\"Sent\",$F8<>\"\",$F8<TODAY()-$B$2),TODAY()-$F8,\"\")","v":null},"Paid","2026-03-27"]
["Byrne Legal","Design retainer (April)",1500,"INV-006","2026-04-03","2026-05-03",{"$f":"IF(AND($H9=\"Sent\",$F9<>\"\",$F9<TODAY()-$B$2),TODAY()-$F9,\"\")","v":null},"Paid","2026-04-22"]
["Meridian Studio","Studio rebrand, identity system",4500,"INV-007","2026-04-18","2026-05-18",{"$f":"IF(AND($H10=\"Sent\",$F10<>\"\",$F10<TODAY()-$B$2),TODAY()-$F10,\"\")","v":null},"Paid","2026-05-08"]
["Oaks Trust","Annual report layout",1600,"INV-008","2026-04-06","2026-05-06",{"$f":"IF(AND($H11=\"Sent\",$F11<>\"\",$F11<TODAY()-$B$2),TODAY()-$F11,\"\")","v":null},"Sent"]
["Vance & Co","Brand retainer (May)",2000,"INV-009","2026-04-20","2026-05-20",{"$f":"IF(AND($H12=\"Sent\",$F12<>\"\",$F12<TODAY()-$B$2),TODAY()-$F12,\"\")","v":null},"Sent"]
["Marlow Hotel","Brand refresh milestone",3200,"INV-010","2026-05-12","2026-06-11",{"$f":"IF(AND($H13=\"Sent\",$F13<>\"\",$F13<TODAY()-$B$2),TODAY()-$F13,\"\")","v":null},"Sent"]
["Highfield Clinic","Content design (May)",1200,"INV-011","2026-05-22","2026-06-21",{"$f":"IF(AND($H14=\"Sent\",$F14<>\"\",$F14<TODAY()-$B$2),TODAY()-$F14,\"\")","v":null},"Sent"]
["Oaks Trust","Fundraising campaign assets",950,null,null,null,{"$f":"IF(AND($H15=\"Sent\",$F15<>\"\",$F15<TODAY()-$B$2),TODAY()-$F15,\"\")","v":null},"Unbilled"]
["Meridian Studio","Website rebuild, build and handoff",2600,null,null,null,{"$f":"IF(AND($H16=\"Sent\",$F16<>\"\",$F16<TODAY()-$B$2),TODAY()-$F16,\"\")","v":null},"Unbilled"]
["Marlow Hotel","Event posters and wayfinding",1400,null,null,null,{"$f":"IF(AND($H17=\"Sent\",$F17<>\"\",$F17<TODAY()-$B$2),TODAY()-$F17,\"\")","v":null},"Unbilled"]
["Highfield Clinic","Social media graphics",1200,null,null,null,{"$f":"IF(AND($H18=\"Sent\",$F18<>\"\",$F18<TODAY()-$B$2),TODAY()-$F18,\"\")","v":null},"Unbilled"]
[{"$nulls":6},{"$f":"IF(AND($H19=\"Sent\",$F19<>\"\",$F19<TODAY()-$B$2),TODAY()-$F19,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H20=\"Sent\",$F20<>\"\",$F20<TODAY()-$B$2),TODAY()-$F20,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H21=\"Sent\",$F21<>\"\",$F21<TODAY()-$B$2),TODAY()-$F21,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H22=\"Sent\",$F22<>\"\",$F22<TODAY()-$B$2),TODAY()-$F22,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H23=\"Sent\",$F23<>\"\",$F23<TODAY()-$B$2),TODAY()-$F23,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H24=\"Sent\",$F24<>\"\",$F24<TODAY()-$B$2),TODAY()-$F24,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H25=\"Sent\",$F25<>\"\",$F25<TODAY()-$B$2),TODAY()-$F25,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H26=\"Sent\",$F26<>\"\",$F26<TODAY()-$B$2),TODAY()-$F26,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H27=\"Sent\",$F27<>\"\",$F27<TODAY()-$B$2),TODAY()-$F27,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H28=\"Sent\",$F28<>\"\",$F28<TODAY()-$B$2),TODAY()-$F28,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H29=\"Sent\",$F29<>\"\",$F29<TODAY()-$B$2),TODAY()-$F29,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H30=\"Sent\",$F30<>\"\",$F30<TODAY()-$B$2),TODAY()-$F30,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H31=\"Sent\",$F31<>\"\",$F31<TODAY()-$B$2),TODAY()-$F31,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H32=\"Sent\",$F32<>\"\",$F32<TODAY()-$B$2),TODAY()-$F32,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H33=\"Sent\",$F33<>\"\",$F33<TODAY()-$B$2),TODAY()-$F33,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H34=\"Sent\",$F34<>\"\",$F34<TODAY()-$B$2),TODAY()-$F34,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H35=\"Sent\",$F35<>\"\",$F35<TODAY()-$B$2),TODAY()-$F35,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H36=\"Sent\",$F36<>\"\",$F36<TODAY()-$B$2),TODAY()-$F36,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H37=\"Sent\",$F37<>\"\",$F37<TODAY()-$B$2),TODAY()-$F37,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H38=\"Sent\",$F38<>\"\",$F38<TODAY()-$B$2),TODAY()-$F38,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H39=\"Sent\",$F39<>\"\",$F39<TODAY()-$B$2),TODAY()-$F39,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H40=\"Sent\",$F40<>\"\",$F40<TODAY()-$B$2),TODAY()-$F40,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H41=\"Sent\",$F41<>\"\",$F41<TODAY()-$B$2),TODAY()-$F41,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H42=\"Sent\",$F42<>\"\",$F42<TODAY()-$B$2),TODAY()-$F42,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H43=\"Sent\",$F43<>\"\",$F43<TODAY()-$B$2),TODAY()-$F43,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H44=\"Sent\",$F44<>\"\",$F44<TODAY()-$B$2),TODAY()-$F44,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H45=\"Sent\",$F45<>\"\",$F45<TODAY()-$B$2),TODAY()-$F45,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H46=\"Sent\",$F46<>\"\",$F46<TODAY()-$B$2),TODAY()-$F46,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H47=\"Sent\",$F47<>\"\",$F47<TODAY()-$B$2),TODAY()-$F47,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H48=\"Sent\",$F48<>\"\",$F48<TODAY()-$B$2),TODAY()-$F48,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H49=\"Sent\",$F49<>\"\",$F49<TODAY()-$B$2),TODAY()-$F49,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H50=\"Sent\",$F50<>\"\",$F50<TODAY()-$B$2),TODAY()-$F50,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H51=\"Sent\",$F51<>\"\",$F51<TODAY()-$B$2),TODAY()-$F51,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H52=\"Sent\",$F52<>\"\",$F52<TODAY()-$B$2),TODAY()-$F52,\"\")","v":null}]
[{"$nulls":6},{"$f":"IF(AND($H53=\"Sent\",$F53<>\"\",$F53<TODAY()-$B$2),TODAY()-$F53,\"\")","v":null}]
[]
["Doing this by hand? Tideplan tracks payments and flags overdue invoices automatically:  tideplan.io/client-payment-tracker"]