Add Total Period Comparison to Simple P&L

Hello,

I really enjoy the Profit & Loss Statement and how simple and clean it is. I was hoping someone might be able to tell me if there is an easy way to modify it so I can compare the current YTD results to the same period last year.

Many of the other YTD comparison reports are helpful, but I haven’t found one that is quite as clean and easy to read as the P&L Statement.

I’m not very experienced with modifying reports, so I was hopeful someone might have a simple way to accomplish this or could point me in the right direction.

Thank you very much!ou

@Cowboy13 , could one of yours work?

Thank you @PCB. Been out of internet range for a bit so just now getting to this.

@josh1 I don’t use the Profit Loss template, but I did create a YTD (or any timeframe) comparison to any other year template. You can find it here- Year over Year Comparisons .

Let me know if you have any questions.

Thanks.

@josh1 are you referring specifically to the Simple P&L that’s built by Tiller? Or a different community solution?

Just want to make sure I provide the right guidance if I can figure out a way to help.

Yes the one built by tiller

Okay, so I got Gemini to help with this in the sheet.

Insert a column to the right of column C (position D).
In row 7 add PREV 12 MO as header.

Row 10 (cash flow row) add this formula into D10
=SUM(MAP($BT$2:$BT, LAMBDA(cat, IF(cat="",, SUMIFS(Transactions!$E:$E, Transactions!$D:$D, cat, Transactions!$B:$B, ">="&EDATE(E$7, -12), Transactions!$B:$B, "<="&EOMONTH(E$7, -1))))))

Then in Row 12 (income row) add this formula to D12:
=if( isblank(E$8), IFERROR(1/0), LET( prev_totals, MAP($BT$2:$BT, LAMBDA(cat, IF(cat="",, SUMIFS(Transactions!$E:$E, Transactions!$D:$D, cat, Transactions!$B:$B, ">="&EDATE(E$7, -12), Transactions!$B:$B, "<="&EOMONTH(E$7, -1))))), MAP( SEQUENCE(max($BQ$2:$BQ)+1,1,0), LAMBDA(row, IFERROR( INDEX(prev_totals, MATCH(row, $BQ$2:$BQ, 0)) * if(XLOOKUP(row, $BQ$2:$BQ, $BR$2:$BR)="Expense",-1,1), IFS( NOT(isna(match(row, $BP$2:$BP,0))), LET( type, XLOOKUP(row, $BP$2:$BP, $BR$2:$BR), group, XLOOKUP(row, $BP$2:$BP, $BS$2:$BS), total, if(type="Expense",-1,1) * IFERROR(SUM(FILTER(prev_totals, $BS$2:$BS=group, $BR$2:$BR=type)), 0), if(total=0,,total) ), NOT(isna(match(row, $BO$2:$BO,0))), LET( type, XLOOKUP(row, $BO$2:$BO, $BR$2:$BR), total, if(type="Expense",-1,1) * IFERROR(SUM(FILTER(prev_totals, $BR$2:$BR=type)), 0), if(total=0,,total) ), true, ) ) ) ) ) )

It should update dynamically based on the period you have selected at the top. You can move the frozen column line over to the right if you don’t want column D to move out of view as you scroll. here’s what it looks like:

I did validate it in the dummy dataset I was using and the output of the calculations look correct, but if something seems off, I’d recommend using Gemini or some other AI to try and help fix it, since I didn’t build this myself :smiley:

Thank you for our help on this - I think I may be using a different P & L - where is the simple template you are showing in your email that I can load?

You can get it from the Tiller Console.

Using the Simple P&L Template | Tiller Help Center.