Double entry accounting milestone 9 - #90
Merged
chongfun merged 2 commits intoAug 24, 2026
Merged
Conversation
- Add PropertyTaxProfile model and migration with property_id and tax_year uniqueness constraint - Separate physical asset_type from year-specific Schedule E classification (IRS Codes 1-8) - Add PropertyTaxReviewResolution model and migration for property-scoped user resolutions of reviewable events - Implement core tax reporting primitives in TaxReporting module: * TaxReporting::ScheduleEAccountMap with 100% mapping of system expense accounts to Schedule E categories * TaxReporting::ScheduleEFormDefinition for versioned IRS form line metadata and Line 19 statement pagination * TaxReporting::ScheduleEEventMap for event-driven tax classification, property-scoped review checks, and fail-closed reversal derivation * TaxReporting::ScheduleEResult data structure with drill-downs, itemized other expenses, and review items * TaxReporting::ScheduleEQuery for double-entry ledger-backed Schedule E worksheet calculation with reversal tax lineage and cross-year review support * TaxReporting::TaxYear for robust parsing and normalization of tax year parameters - Enforce cash-received semantics for Line 3 (Rents received) derived strictly from ordinary Receipt cash postings, excluding unpaid rent charges and refundable security deposits - Flag security deposit applications and unmapped expenses for explicit user tax review with fail-closed treatment and resolution target navigation (return_to_year) - Add PropertyTaxProfilesController and PropertyTaxReviewResolutionsController with dynamic views and Stimulus controllers - Modernize Schedule E worksheet view with tax profile configuration status, line breakdowns, review items, and untracked item disclaimers - Update ScheduleEGenerator to source data directly from TaxReporting::ScheduleEQuery and PropertyTaxProfile - Deprecate legacy Properties::ScheduleESummaryQuery - Add full RBS type signatures and comprehensive test suites
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implement:
The initial result should answer:
These correspond to the current Schedule E Part I layout. The latest Schedule E currently published by the IRS is the 2025 form; its Part I still uses line 3 for rents received and lines 5–19 for these expense categories.
Do not implement depreciation calculations, passive-loss rules, personal-use allocation, basis, Form 8582, or tax advice. Those remain outside the accounting PRD's scope.
I would call this a Schedule E worksheet, not a generated tax return.