Hidden Rollup Formula In Obsidian Bases ๐Ÿ”— **Source:** [Hidden Rollup Formula In Obsidian Bases](https://www.youtube.com/watch?v=dWNvs0rEg0c) > [!note]+ Document Notes > tags: [obsidian, database, formula] > author: [MISSING] > source: YouTube > reference: https://www.youtube.com/watch?v=dWNvs0rEg0c > date created: 2024-12-28 10:30 > > # ๐Ÿท๏ธ Title: Hidden Rollup Formula In Obsidian Bases > <!-- deep-read:sections start --> ## ๐Ÿงฐ Action Inbox - [H1] Implement rollup formulas using file.backlinks.map() โ€” 00:00-02:30 #obsidian - [H2] Create filtered views with advanced filters โ€” 06:45-09:15 #database - [H3] Set up relationship tracking via list properties โ€” 10:30-13:20 #formula ## ๐Ÿงญ Table of Contents - [๐Ÿ“ Summary](#-summary) - [๐Ÿ“– Main Content](#-main-content) - [๐Ÿ—’๏ธ Notes](#๏ธ-notes) - [๐Ÿ“š References](#-references) - [๐Ÿ—ฃ๏ธ Paraphrase](#๏ธ-paraphrase) - [๐Ÿ“ฐ Newsletter](#-newsletter) - [โœ… Action Items](#-action-items) - [๐Ÿงช Hypotheses](#-hypotheses) - [๐Ÿ“Š Methodology](#-methodology) - [โ“ Questions](#-questions) - [๐Ÿ”ฎ Future Research](#-future-research) - [๐Ÿ’ก Implications](#-implications) - [๐Ÿง  Learning Styles Assessment](#-learning-styles-assessment) - [๐Ÿ“Š Accessibility Assessment](#-accessibility-assessment) - [๐ŸŒ DEIB Assessment](#-deib-assessment) - [โœ… Logical Validity](#-logical-validity) - [๐Ÿ›ก๏ธ DARVO Analysis](#-darvo-analysis) - [๐ŸŽฏ Conclusion](#-conclusion) ### ๐Ÿ”— References - [Video Source](https://www.youtube.com/watch?v=dWNvs0rEg0c) - [Vault Download](URL mentioned in description) ## ๐Ÿ“ Summary - Demonstrates hidden rollup functionality in Obsidian Bases using formula properties instead of dedicated rollup fields - Shows real-world use case for trampoline coaching business tracking participants, payments, and sessions - Uses only core Obsidian features without community plugins - Enables migration from Excel pivot tables to Obsidian-based database system - Provides mobile-friendly solution for business data management ## ๐Ÿ“– Main Content The video reveals that Obsidian Bases supports rollup functionality through formula properties rather than dedicated rollup fields. The creator demonstrates a trampoline coaching business management system with four main categories: daily notes, participants, payments, and sessions. The system uses advanced formula properties to calculate balances by rolling up related payments and session fees across linked files. Key technical components include file.backlinks for relationship traversal, .map() for data extraction, .filter() for value selection, and .reduce() for aggregation. The presenter emphasizes this approach enabled complete migration from Excel to Obsidian while maintaining complex business logic. ## ๐Ÿ—’๏ธ Notes #### โฑ๏ธ [00:00](https://youtu.be/dWNvs0rEg0c?t=0) โ€” [H1] Rollups exist in formula properties - Key idea: Rollup functionality hidden within formula properties, not separate rollup fields - Evidence: "rollups are available inside of Obsidian Bases, but they're in the formula property" #### โฑ๏ธ [00:30](https://youtu.be/dWNvs0rEg0c?t=30) โ€” [H2] Demo vault uses core Obsidian only - Key idea: Implementation requires no community plugins - Evidence: "no community plugins in this vault. It's all core obsidian" #### โฑ๏ธ [01:15](https://youtu.be/dWNvs0rEg0c?t=75) โ€” [H3] Business use case with four categories - Key idea: Real-world trampoline coaching business with structured data - Evidence: "daily, participant, payment, and session because I work as a trampoline coach" #### โฑ๏ธ [02:30](https://youtu.be/dWNvs0rEg0c?t=150) โ€” [H2] Formula properties calculate relationships - Key idea: Paid value aggregates all related payment files - Evidence: "paid value is a formula property which is actually a rollup of all of the related files" #### โฑ๏ธ [03:45](https://youtu.be/dWNvs0rEg0c?t=225) โ€” [H3] Balance calculation combines multiple formulas - Key idea: Complex business logic through formula composition - Evidence: "session fees, which is 15, how much they paid, which is five, taking them away from each other" #### โฑ๏ธ [04:30](https://youtu.be/dWNvs0rEg0c?t=270) โ€” [H2] Age calculation from date properties - Key idea: Additional formula demonstrates date manipulation capabilities - Evidence: "another formula in here, which is age. So I can see how old this person is" #### โฑ๏ธ [06:45](https://youtu.be/dWNvs0rEg0c?t=405) โ€” [H3] Multiple views per database - Key idea: Different perspectives on same data through view configuration - Evidence: "duplicate view, and then call it all information. Now I have two different views" #### โฑ๏ธ [08:15](https://youtu.be/dWNvs0rEg0c?t=495) โ€” [H2] View persistence through hashtag syntax - Key idea: Specific views saved to individual files using hashtag notation - Evidence: "come to the end of this, go hashtag, and then save all information" #### โฑ๏ธ [10:30](https://youtu.be/dWNvs0rEg0c?t=630) โ€” [H3] Advanced filtering on list properties - Key idea: Complex filters check if list contains specific file references - Evidence: "looking for the list called attended and asking whether it contains this file" #### โฑ๏ธ [12:00](https://youtu.be/dWNvs0rEg0c?t=720) โ€” [H2] Formula breakdown for days calculation - Key idea: Date arithmetic using today() function and rounding - Evidence: "today and then taking away note date... give me that in days and round it to a number" #### โฑ๏ธ [13:20](https://youtu.be/dWNvs0rEg0c?t=800) โ€” [H3] List filtering and length calculation - Key idea: Count occurrences by filtering list for specific values - Evidence: "filtering that list by whether the value equals the link to this" #### โฑ๏ธ [15:45](https://youtu.be/dWNvs0rEg0c?t=945) โ€” [H2] Core rollup formula explanation - Key idea: file.backlinks.map() provides the foundational rollup mechanism - Evidence: "file backlinks. What that's doing... is looking at person one... has three different backlinks" #### โฑ๏ธ [17:30](https://youtu.be/dWNvs0rEg0c?t=1050) โ€” [H3] Map, filter, reduce pattern - Key idea: Standard functional programming pattern for data aggregation - Evidence: "map it, find the property number... filtering for a value... adding it all together" #### โฑ๏ธ [19:15](https://youtu.be/dWNvs0rEg0c?t=1155) โ€” [H2] String to number conversion requirement - Key idea: Type conversion necessary for mathematical operations - Evidence: "this comes out as a string, which we don't want... change it from a string to a number" #### โฑ๏ธ [20:30](https://youtu.be/dWNvs0rEg0c?t=1230) โ€” [H3] Excel migration success story - Key idea: Complete replacement of Excel pivot tables with Obsidian system - Evidence: "move my entire Excel spreadsheet of data with pivot tables... into Obsidian" ## ๐Ÿ“š References - [Hidden Rollup Formula In Obsidian Bases](https://www.youtube.com/watch?v=dWNvs0rEg0c) - [Obsidian Discord Community](https://discord.gg/obsidian) - [Demo Vault Download](mentioned in video description) ## ๐Ÿ—ฃ๏ธ Paraphrase - Obsidian Bases hides rollup functionality within formula properties rather than providing dedicated rollup fields, requiring users to construct complex formulas using file.backlinks and functional programming patterns - A real-world business use case demonstrates tracking participants, payments, and sessions through interconnected databases with advanced filtering and relationship management using only core Obsidian features - The system successfully replaces Excel pivot table functionality while providing superior mobile access and navigation through linked data structures ## ๐Ÿ“ฐ Newsletter **Unlock Hidden Rollup Power in Obsidian Bases** Did you know Obsidian Bases can perform complex rollup calculations without community plugins? This week's discovery reveals how formula properties can aggregate data across related files using file.backlinks.map() patterns. A trampoline coach shares their complete business management system built entirely on core Obsidian features. The setup tracks participants, payments, and sessions through interconnected databases with automatic balance calculations and relationship filtering. **Key Benefits:** - Replace Excel pivot tables with linked note system - Mobile-friendly business data management - Advanced filtering on list properties - Real-time calculated fields and balances **Try This:** Start with file.backlinks in a formula property to aggregate values from related notes. Use .map() to extract properties, .filter() to select relevant values, and .reduce() to calculate totals. Resources: [Learn WordPress](https://learn.wordpress.org/), [Developer Docs](https://developer.wordpress.org/), [WP-CLI](https://wp-cli.org/) ## โœ… Action Items #### DevRel - Developer advocacy: Demo advanced Obsidian formula patterns in PKM workshops - Education: Create tutorial series on business database migration from Excel - Developer experience: Document formula property patterns and common use cases - Community management: Share rollup formula templates in PKM communities #### Community - Maintainers: Contribute formula examples to Obsidian community vault - Contributors: Document advanced filtering patterns for Bases - Ecosystem: Bridge Excel users to Obsidian through migration guides #### WordPress - Documentation: Apply database relationship patterns to WordPress data modeling - Training: Develop lesson plans for structured content management - Meta: Consider formula-like functionality for custom field aggregation ## ๐Ÿงช Hypotheses - Formula-based rollups provide more flexibility than dedicated rollup fields in database systems - Business users can successfully migrate from Excel to note-based systems without losing analytical capability - Mobile-first PKM systems improve field data collection and real-time business monitoring - Core platform features often provide hidden advanced functionality when combined creatively ### ๐Ÿ“Š Methodology - Case study analysis: Compare Excel vs Obsidian workflow efficiency for small business - User testing: Measure learning curve for formula property implementation - Performance benchmarking: Test rollup calculation speed across different data volumes ### โ“ Questions - How do formula-based rollups perform compared to native database rollup implementations? - What business process types benefit most from PKM-based data management? - Could similar patterns work in other note-taking applications beyond Obsidian? ### ๐Ÿ”ฎ Future Research - Investigate formula optimization patterns for large dataset performance - Explore integration possibilities with business intelligence tools - Develop standardized templates for common business use cases ### ๐Ÿ’ก Implications - Practice: Small businesses can build sophisticated data systems without enterprise software costs - Education: PKM tools require advanced formula literacy for business applications - Security: Local note-based systems provide data sovereignty advantages over cloud databases - Funding: Reduced software licensing costs through creative use of existing tools ### ๐Ÿง  Learning Styles Assessment Reading level estimate: Grade 12 #### ๐Ÿ‘€ Visual learners - Present: Screenshots of database views, formula property interfaces - Improve: Flowcharts showing data relationships, visual formula breakdown diagrams #### ๐Ÿ”Š Aural learners - Present: Video walkthrough with narrated explanations - Improve: Audio summary focusing on conceptual understanding #### ๐Ÿ—ฃ๏ธ Verbal learners - Present: Clear terminology definitions, business use case analogies - Improve: Glossary of formula functions, comparison with Excel terminology #### ๐Ÿงฉ Kinesthetic learners - Present: Downloadable demo vault for hands-on exploration - Improve: Step-by-step implementation checklist, interactive formula builder #### ๐Ÿง  Logical learners - Present: Formula syntax breakdown, systematic progression through examples - Improve: Decision tree for choosing formula patterns, troubleshooting guide #### ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Social learners - Present: Discord community references, collaborative problem-solving - Improve: Forum for sharing business use cases, peer review of implementations #### ๐Ÿง˜โ€โ™€๏ธ Solitary learners - Present: Complete standalone demo vault, self-contained examples - Improve: Reflection prompts on personal use cases, self-assessment quiz #### ๐ŸŒฟ Naturalistic learners - Present: Real-world business ecosystem analogy - Improve: Data lifecycle thinking, sustainable information architecture ### ๐Ÿ“Š Accessibility Assessment #### Screen reader semantics - Present: Clear heading structure, descriptive video narration - Improve: Alt text for screenshots, formula syntax descriptions #### Keyboard navigation - Present: Standard video controls, downloadable text resources - Improve: Keyboard shortcuts documentation for Obsidian navigation #### Contrast and readability - Present: High contrast in video interface demonstrations - Improve: Text-based formula explanations with adequate spacing #### Media and captions - Present: YouTube auto-captions available - Improve: Professional captions with technical term accuracy, transcript download #### Standards reference - Video accessibility meets WCAG 2.2 AA for media time-based content ### ๐ŸŒ DEIB Assessment #### Cultural breadth - Present: Business context applicable across cultural settings - Improve: Examples from diverse business types and cultural contexts #### Inclusive language - Present: Gender-neutral business terminology, clear technical explanations - Improve: Avoid coaching-specific jargon, provide alternative business examples #### Neurodiversity support - Present: Systematic progression through concepts, consistent structure - Improve: Chunk complex formulas into smaller components, provide multiple explanation approaches #### Representation - Present: Focus on technical content rather than personal characteristics - Improve: Include diverse business use cases beyond sports coaching #### Psychological safety - Present: Encouraging tone about Excel migration possibilities - Improve: Acknowledge learning curve challenges, provide failure recovery strategies ### โœ… Logical Validity #### Strong reasoning - Deductive strength: Clear formula logic progression from backlinks to calculations - Inductive strength: Single use case extrapolated to general business applications - Causal reasoning: Direct connection between formula implementation and business outcomes - Analogical strength: Excel-to-Obsidian comparison provides familiar reference point #### Fallacies - Hasty generalization: Single coaching business success may not apply universally, weakness in sample size, fix with multiple business case studies - Appeal to novelty: Emphasis on "hidden" functionality implies superiority without comparison, weakness in evaluation criteria, fix with objective feature comparison #### Tone of voice - Overall tone: Enthusiastic and educational with community gratitude, demonstrates genuine excitement about discovered functionality while maintaining technical accuracy ### ๐Ÿ›ก๏ธ DARVO Analysis - Deny: No denial patterns present - Attack: No attacks on opposing viewpoints or users - Reverse victim/offender: No victim/offender dynamics present - Emotional cues and rhetoric: Positive enthusiasm and community appreciation, genuine educational intent ## ๐ŸŽฏ Conclusion - Obsidian Bases provides sophisticated rollup functionality through formula properties using file.backlinks.map() patterns, enabling complex business database implementations without community plugins - The demonstrated trampoline coaching system proves small businesses can successfully migrate from Excel to PKM-based solutions while maintaining analytical capabilities and gaining mobile accessibility - Success requires understanding functional programming concepts and formula composition, but the investment enables powerful local data sovereignty and cross-platform access to business intelligence ## ๐Ÿงฑ Refactor Appendix ### ๐Ÿ“š Literature Split Pad Purpose: Stage CEE units that become Literature notes. Split level: H3 ### [H1] Formula properties enable rollup calculations > [!quote] Hidden Rollup Formula In Obsidian Bases by [MISSING] via YouTube. Published 2024. Accessed 2024-12-28. > "rollups are available inside of Obsidian Bases, but they're in the formula property, not a unique rollup or relation property" Advanced database functionality hidden within formula system rather than dedicated fields. [view highlight](https://youtu.be/dWNvs0rEg0c --- ## Full Transcript [00:00] So rollups are available inside of<br>[00:02] Obsidian Bases, but they're in the<br>[00:04] formula property, not a unique rollup or<br>[00:07] relation property inside of the bases<br>[00:10] view. And they're not simple to do<br>[00:13] either. So what I'm going to do in this<br>[00:14] video is show you my personal use case<br>[00:16] in a demo vault and walk you through how<br>[00:19] I got there. But I do want to say a<br>[00:21] massive thank you to everyone inside of<br>[00:22] the Obsidian Discord server that has<br>[00:24] helped me out in various aspects with<br>[00:26] this setup. I will also leave a download<br>[00:28] link in the description below to the<br>[00:29] vault so you can explore yourself. But<br>[00:31] you can see we've got organized folders<br>[00:33] much more than the uh vault that I'm<br>[00:35] actually using. Then inside of this<br>[00:37] daily note, it is a daily note inside of<br>[00:39] the folder called logbook using the core<br>[00:41] plug-in. I should mention there's no<br>[00:43] community plugins in this vault. It's<br>[00:44] all core obsidian. So no additions<br>[00:47] needed. Then I have a property<br>[00:49] categories. It's a list property type.<br>[00:52] And then I have a link to daily which is<br>[00:55] a category inside of this folder. So<br>[00:56] we've got different categories of files.<br>[00:58] We've got daily, participant, payment,<br>[01:00] and session because uh I work as a<br>[01:03] trampoline coach. And so this is the use<br>[01:05] case that I have. Then inside of the<br>[01:07] basis folder, you can see we've got a<br>[01:09] base here. We have the daily bases which<br>[01:12] shows all the dailies. Then we've got<br>[01:14] participants, payments, and sessions.<br>[01:16] And what this is if I go down is this is<br>[01:19] the participants base which is here. And<br>[01:22] because of the exclamation mark I can<br>[01:24] see it in line. So I'm looking at the<br>[01:26] all participants view of the<br>[01:28] participants base because if I click<br>[01:30] this dropdown you can add more views.<br>[01:33] And in my vault I have far more than one<br>[01:35] but we're keeping it simple here. But<br>[01:37] where the really exciting stuff happens<br>[01:38] is these properties. So these are<br>[01:40] formula properties. If I open up this<br>[01:42] folder view, this paid value is a<br>[01:45] formula property which is actually a<br>[01:47] rollup of all of the related files to<br>[01:51] the person one file. So all of the<br>[01:53] payments inside of the payments folder<br>[01:56] that is related to person one are being<br>[01:58] added up to create this number five.<br>[02:01] Then sessions is very similar. And so<br>[02:04] any session that has a relation to the<br>[02:06] person one property is being added up<br>[02:09] here. that is then being multiplied by<br>[02:11] five to give me the session fees. And<br>[02:14] I'm showing all three of these formulas<br>[02:16] separate because what I'm actually doing<br>[02:18] is all of these at once to create this<br>[02:20] balance. So what it's doing is looking<br>[02:23] at the session fees, which is 15, how<br>[02:25] much they paid, which is five, taking<br>[02:27] them away from each other, which makes<br>[02:28] 10. So they still owe ยฃ10 to the club.<br>[02:32] And I've also got another formula in<br>[02:34] here, which is age. So I can see how old<br>[02:36] this person is, which comes from a date<br>[02:38] property inside of this file. So let's<br>[02:41] explore this a little bit further. If we<br>[02:43] go to the basis view, we go to the<br>[02:44] daily. This is the daily base. There<br>[02:47] isn't really much in there. It's just<br>[02:49] the ability to go to the daily category,<br>[02:52] which is a category page, and then see<br>[02:53] all of the days. So I can go through all<br>[02:55] of the days of the log book. And what<br>[02:57] this means is when I'm in here, I can<br>[02:59] write notes on the day for the session<br>[03:02] or for transactions or things I need to<br>[03:04] keep up with. And so I have a log of<br>[03:06] everything going on, plus the all<br>[03:08] participants view, which gives me uh a<br>[03:11] quick way on my phone to see who needs<br>[03:13] to pay and who doesn't need to pay of<br>[03:15] what's going on. And then I have other<br>[03:16] views in here which gives me more<br>[03:17] information. That's all the basis view<br>[03:19] does. The participants basis view is<br>[03:22] this view that you would see inside of<br>[03:24] the daily notes. And at the moment there<br>[03:26] is just one view in here. So when we go<br>[03:28] to the daily note, you can see there it<br>[03:30] is. If I write some notes in here, so<br>[03:32] creating a video and then I go to the<br>[03:35] daily note, I can then open today's<br>[03:37] daily note. Open up the templates and<br>[03:39] now go to the daily note template. I<br>[03:41] will see this inline participant view in<br>[03:43] the daily log. So I always have access<br>[03:45] to this. But what you could do and what<br>[03:47] I do is have a different view. So if I<br>[03:48] go to a person, you can see the birthday<br>[03:51] is a property for this person. And then<br>[03:53] there's various other information such<br>[03:55] as emergency contact, etc. And so what I<br>[03:58] could do if I come to this view is go to<br>[04:00] properties, type in birthday, and then<br>[04:03] show the birthday inside of this view.<br>[04:06] But if I right click and hide that<br>[04:07] column, I don't have to see it. So I<br>[04:09] don't get the scroll bar. So what I<br>[04:10] might want to do is hide some of these<br>[04:12] formula properties and show that. Or I<br>[04:14] can come up, go to the arrow, three<br>[04:16] dots, duplicate view, and then<br>[04:22] call it all information. Now I have two<br>[04:24] different views in the base. So when I<br>[04:26] go to participants, I can see there's<br>[04:28] two different views. And then in the all<br>[04:31] information, I can go properties,<br>[04:34] birthday, it's now showing birthday.<br>[04:35] Let's move the birthday to the front.<br>[04:37] Then we go in to our log book. And it's<br>[04:40] defaulted to all participants because<br>[04:42] that's the default view in the<br>[04:43] participants database. But what you can<br>[04:45] do is come to the end of this, go<br>[04:47] hashtag, and then save all information.<br>[04:51] So if I go to yesterday, it shows the<br>[04:53] all participants. If I go to today, it's<br>[04:55] all information because I've saved the<br>[04:57] view of the base inside of the file. And<br>[05:00] so now when I go to the daily view, I<br>[05:02] can see the two different dailies. And<br>[05:03] there's just the one view in that<br>[05:05] database, remember? And then if I jump<br>[05:06] to the daily note, you can see this<br>[05:08] template doesn't have the hashtag. So it<br>[05:10] will always show all participants first.<br>[05:12] If I want to change that, I can then<br>[05:13] obviously add the hashtag in here. So<br>[05:15] that's how the template shows the<br>[05:17] specific view for the file that's been<br>[05:20] created. Now this is important because<br>[05:22] after our daily category we have the<br>[05:24] participant category and in the<br>[05:26] participant category you can see all of<br>[05:27] the participants. So we got two<br>[05:29] different views all participants and all<br>[05:30] information because it is that same<br>[05:32] database the participants database. But<br>[05:34] if we click into person one as I did<br>[05:37] before you can see we've got these two<br>[05:38] different views and these views are the<br>[05:40] two other databases the payments and the<br>[05:42] sessions. This is the sessions database.<br>[05:45] You can see we've got two different<br>[05:46] sessions session one and session two and<br>[05:48] then we've got one payment currently.<br>[05:50] And if I go down, you can see this is<br>[05:52] actually saved to sessions. So it's the<br>[05:54] sessions view, not the all sessions<br>[05:57] view. If we come up here to the<br>[05:58] database, these are all of the sessions<br>[06:01] and these are the sessions which has a<br>[06:04] different filter. So if we go to the<br>[06:06] right, actually let's go to the all<br>[06:08] sessions. If we go to the right and go<br>[06:09] to the filter all views, the all<br>[06:12] sessions view and the sessions view both<br>[06:15] use this as a filter. So the category<br>[06:18] contains session and the file name does<br>[06:21] not contain template because I don't<br>[06:22] want the template file appearing in the<br>[06:24] view. Both of these filters happen in<br>[06:26] both of the views, the all sessions and<br>[06:28] the regular sessions. However, you'll<br>[06:29] notice this view, there isn't anything<br>[06:31] filtering. But if I go to the sessions<br>[06:34] view, go to the filter, there is uh an<br>[06:36] advanced filter, I guess you'd call it.<br>[06:38] It's something you can't put in the<br>[06:40] little editor here, which is looking for<br>[06:42] the list called attended and asking<br>[06:45] whether it contains this file. So to<br>[06:47] keep you orientated, I'm in a<br>[06:49] participant file and I'm looking at the<br>[06:52] sessions database and the filter for<br>[06:56] attended is a property inside of one of<br>[06:58] the sessions. So if we bring up session<br>[07:00] one, this file has a property called<br>[07:02] attended. It's a list property and<br>[07:04] person one is backl inside of that<br>[07:07] property. And so inside of the sessions<br>[07:10] view in the filter, it's looking for the<br>[07:12] list. Does the attended list, this one<br>[07:15] here, contain this file? So this file is<br>[07:19] person one. Does session one inside of<br>[07:22] the list property includes person one?<br>[07:24] Yes, it does. So it's going to show that<br>[07:26] file. Does session two? Well, if I<br>[07:27] middle click on session two, person<br>[07:29] one's actually in there twice. So both<br>[07:31] sessions are appearing because person<br>[07:32] one is in both of those files. And<br>[07:35] you'll notice we have two formulas in<br>[07:37] here. We have days ago and number of<br>[07:39] sessions. So the days ago, four days ago<br>[07:41] is how long ago this session was. And<br>[07:44] that's being worked out from the date<br>[07:45] property in session one and then in<br>[07:47] session two. So if I right click on the<br>[07:50] property and then click edit formula, it<br>[07:52] says today. So it's looking for today<br>[07:55] and then taking away you see there note<br>[07:58] date. It's looking for the note property<br>[08:01] date. And that note property date is<br>[08:05] this one right here inside of the<br>[08:07] session file. And then it's saying,<br>[08:09] "Hey, give me that in days and round it<br>[08:11] to a number." And then all I'm doing is<br>[08:14] adding the text. Just going to highlight<br>[08:16] that. There is a there is a space here<br>[08:17] just so there's a space between the<br>[08:19] number and the the text days ago to make<br>[08:21] it look a little nicer. Four days ago, 0<br>[08:24] days ago. So if we change this date to<br>[08:27] the 1st,<br>[08:29] you can see it's now 3 days ago. If we<br>[08:31] go into edit that formula and change,<br>[08:33] let's remove that space to so you see<br>[08:35] what I mean. Now there's no space there.<br>[08:37] So I edit the formula,<br>[08:41] add the space in. Now we've got 3 days<br>[08:43] ago. Then for the number of sessions<br>[08:45] database, when I right click, go to edit<br>[08:46] formula. So again, this is looking at<br>[08:48] the attended list. So person one, person<br>[08:50] two, person one, person one. It's then<br>[08:52] filtering that list by whether the value<br>[08:55] equals the link to this. So, does it<br>[08:58] equal the person one? So, person one,<br>[09:01] yes. Person one, person one, yes. And<br>[09:04] then it's doing a length. So, it's<br>[09:05] adding that together, which means in<br>[09:07] this one, there is one link. So, there<br>[09:10] is a number one being shown. In this<br>[09:13] file, there are two. So, in session one,<br>[09:15] it's filtering out person one and then<br>[09:17] adding them all up, and there was one<br>[09:18] left. In session two, it's filtering out<br>[09:20] everything else. Well, there isn't<br>[09:22] anything else. And then adding it up.<br>[09:23] And in this case, there's two. So,<br>[09:24] you've got one session and two session.<br>[09:27] If we add person two to session two,<br>[09:29] it's filtering out the person two<br>[09:31] because they're not this file. This<br>[09:34] person one file. And so, we've got two<br>[09:36] still showing. So, I can exit that out.<br>[09:38] If I get rid of the one from there, now<br>[09:40] there's only one session showing. So,<br>[09:42] let's bracket bracket person one. Add<br>[09:45] that back in. Uh, and now you can see<br>[09:47] we've got two for the payments database.<br>[09:48] You can see there's no formulas here and<br>[09:50] the filter works exactly the same, but<br>[09:52] it's looking for the participant<br>[09:53] property instead of attended property.<br>[09:55] So if we go onto the session one and<br>[09:57] then we go to payment one, you can see<br>[09:59] we've got a participant property and<br>[10:01] it's looking for the link to person one,<br>[10:03] which is there. So you can see number<br>[10:04] five. So if we change that to 55, now<br>[10:07] numbers 55. So let's just remove that.<br>[10:10] And because these filters are specific<br>[10:12] to the file, if we jump back to session<br>[10:14] one and we actually create person two,<br>[10:16] it's a blank file. We add the template<br>[10:19] for person. You can see if we scroll<br>[10:22] down, it's now showing a different view<br>[10:24] because it's looking for the payments<br>[10:25] view. There's no payments for person<br>[10:27] two. And then the sessions, there is one<br>[10:30] session, and that's the one session they<br>[10:31] were involved in, which was session one.<br>[10:33] So, if we click on session one, you can<br>[10:34] see person one and person two. And the<br>[10:37] reason I moved from Excel to Obsidian is<br>[10:39] because of the ability to jump quickly<br>[10:41] backwards and forwards between all of<br>[10:43] the sessions that I needed to and find<br>[10:45] the information that I want. So now we<br>[10:46] covered the layout and the setup of the<br>[10:48] vault. I'm going to go through the<br>[10:50] rollup formulas. What I've done is<br>[10:53] listed all of the formulas out inside of<br>[10:54] a file. So if I close all of these<br>[10:57] folders down, you can see the formula<br>[10:59] file right at the bottom. And what I've<br>[11:00] done here is shared the explanation that<br>[11:02] it was given to me about how this rollup<br>[11:05] formula works. So the first thing we<br>[11:07] need to do is actually get the back<br>[11:08] links. That's the roll up element of<br>[11:10] this formula. So file backlinks. What<br>[11:12] that's doing in this database's case is<br>[11:14] looking at person one. So if I open up<br>[11:16] that file, you can see the person one<br>[11:18] file has three different backlinks.<br>[11:19] Payment one, session one, and session<br>[11:21] two. So this is looking for the back<br>[11:23] links. There's the back links. Then it's<br>[11:26] saying for each value in that give us<br>[11:29] something. So that's what the map bit<br>[11:31] is. And all of this is looking for the<br>[11:34] properties called number and giving a<br>[11:37] value for that. So what it's doing is<br>[11:39] it's looking at all of the backlink<br>[11:41] information. So if we come back here,<br>[11:42] it's looking through these files for the<br>[11:45] property number which in this case the<br>[11:47] session if we look down in the bottom<br>[11:49] left that doesn't have a number<br>[11:51] property. So it's not going to show<br>[11:53] anything. If we come back here and then<br>[11:55] we go to the payment one, this one does<br>[11:57] have a number property. So it's found<br>[12:00] found the number five which means this<br>[12:02] first line has changed the backlink list<br>[12:05] from payment one session one session two<br>[12:07] to the numbers well five nothing and<br>[12:10] nothing. The next line is filtering for<br>[12:13] a value. Well if there is nothing and<br>[12:15] nothing then get rid of it and only show<br>[12:17] the values that are left which is in<br>[12:19] this case number five. And the last line<br>[12:22] here is essentially adding it all<br>[12:24] together starting from zero. So from<br>[12:26] zero add the values which in this case<br>[12:28] is all positive. So it's going to go up<br>[12:30] to the number five which is why when we<br>[12:33] go back to our participants base in the<br>[12:35] log book we can see the number five<br>[12:37] because it's gone through all of the<br>[12:38] back links of person one and found<br>[12:40] there's a number five payment. So put<br>[12:42] five in there. So if I come into<br>[12:44] payments I go new note add the template<br>[12:48] payment. Let's add the participant in.<br>[12:50] So person one we're going to add another<br>[12:52] five. So they've paid another ยฃ5. We go<br>[12:55] person one. You can see there's the<br>[12:57] payment. I haven't titled it. I haven't<br>[12:59] put a date on it, but it's there. And if<br>[13:01] I go to a day, so let's go to yesterday.<br>[13:04] You can see the balance is now -5<br>[13:06] because it's paid 10. Looking at the<br>[13:08] sessions formula is essentially the same<br>[13:10] thing. Look through the back links, map<br>[13:12] it, find the property attended, filter<br>[13:15] it for a value that equals the file<br>[13:16] name. So in this case, we're looking for<br>[13:19] person one. So, does person one appear<br>[13:21] in the attended backlink, which would be<br>[13:23] session one and session two? Yes, person<br>[13:26] one appears in some of those back links.<br>[13:28] So, filter that and then length it. So,<br>[13:30] add them all together. And that's where<br>[13:32] the number three comes from. But because<br>[13:34] this is a file name, I believe this<br>[13:35] comes out as a string, which we don't<br>[13:38] want to use because we want it to be a<br>[13:39] number, which means I need to change it<br>[13:41] from a string to a number, which thank<br>[13:44] you very much to those in the Obsidian<br>[13:45] Discord for helping me. This is how I've<br>[13:47] done that. And that means I can then<br>[13:49] times it by five, which is basically<br>[13:51] what this formula does. It just times<br>[13:53] three by the number five. So every<br>[13:55] session is ยฃ5. So I can say it's ยฃ15<br>[13:59] that they owe because they've attended<br>[14:00] three sessions. I've already got the<br>[14:02] paid value. And so what I need to do is<br>[14:04] then take those away from one another.<br>[14:06] And that is what I've done. I've got the<br>[14:07] paid formula. I've taken it away from<br>[14:10] the session fees formula. And that gives<br>[14:12] me the value of the balance. As you can<br>[14:15] see, I've got all of the other formulas<br>[14:16] in here. So if you want to have a look,<br>[14:18] please do. The date format of the week,<br>[14:20] attended days, etc., etc. I'll leave the<br>[14:22] I'll leave the download in the<br>[14:24] description below. So rollups and<br>[14:26] calculations inside of Obsidian basis is<br>[14:28] possible. And what this has allowed me<br>[14:29] to do is actually move my entire Excel<br>[14:31] spreadsheet of data with pivot tables<br>[14:33] and all the rest of it into Obsidian,<br>[14:34] which is easier for mobile. It's easier<br>[14:37] to navigate to, as you can see,<br>[14:39] participant information or go to certain<br>[14:41] dashboards of certain filtered views,<br>[14:43] and it's just easier to manage in<br>[14:45] Obsidian than it was in Excel,<br>[14:47] especially on mobile. So, maybe I'll do<br>[14:49] a video explaining that in the future. <!-- deep-read:sections end -->