Security

Token

There is no security token.

Firewall

main Name
Security enabled
Stateless

Configuration

Key Value
provider security.user.provider.concrete.app_user_provider
context main
entry_point App\Security\KbinAuthenticator
user_checker App\Security\UserChecker
access_denied_handler (none)
access_denied_url (none)
authenticators
[
  "two_factor"
  "remember_me"
  "App\Security\KbinAuthenticator"
  "App\Security\FacebookAuthenticator"
  "App\Security\GoogleAuthenticator"
  "App\Security\GithubAuthenticator"
  "App\Security\KeycloakAuthenticator"
]

Listeners

Listener Duration Response
Symfony\Component\Security\Http\Firewall\ChannelListener {#723
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
  -logger: Monolog\Logger {#783 …}
  -httpPort: 80
  -httpsPort: 443
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\ContextListener {#706
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage {#1017 …}
  -sessionKey: "_security_main"
  -logger: Monolog\Logger {#783 …}
  -userProviders: Symfony\Component\DependencyInjection\Argument\RewindableGenerator {#705 …}
  -dispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
  -registered: false
  -trustResolver: Scheb\TwoFactorBundle\Security\Authentication\AuthenticationTrustResolver {#780 …}
  -sessionTrackerEnabler: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage::enableUsageTracking(): void {#703 …}
}
0.71 ms (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#584
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#595 …}
}
0.00 ms (none)
Scheb\TwoFactorBundle\Security\Http\Firewall\TwoFactorAccessListener {#582
  -twoFactorFirewallConfig: Scheb\TwoFactorBundle\Security\TwoFactor\TwoFactorFirewallConfig {#842 …}
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -twoFactorAccessDecider: Scheb\TwoFactorBundle\Security\Authorization\TwoFactorAccessDecider {#581 …}
}
0.03 ms (none)
Symfony\Component\Security\Http\Firewall\AccessListener {#579
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -accessDecisionManager: Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager {#937 …}
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\LogoutListener {#786
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -options: [
    "csrf_parameter" => "_csrf_token"
    "csrf_token_id" => "logout"
    "logout_path" => "app_logout"
  ]
  -httpUtils: Symfony\Component\Security\Http\HttpUtils {#841 …}
  -csrfTokenManager: Symfony\Component\Security\Csrf\CsrfTokenManager {#1015 …}
  -eventDispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
}
0.00 ms (none)

Authenticators

No authenticators have been recorded. Check previous profiles on your authentication endpoint.

Access Decision

affirmative Strategy
# Voter class
1
"Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter"
2
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
3
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
4
"Symfony\Component\Security\Core\Authorization\Voter\ExpressionVoter"
5
"App\Security\Voter\EntryCommentVoter"
6
"App\Security\Voter\EntryVoter"
7
"App\Security\Voter\MagazineVoter"
8
"App\Security\Voter\MessageThreadVoter"
9
"App\Security\Voter\MessageVoter"
10
"App\Security\Voter\NotificationVoter"
11
"App\Security\Voter\OAuth2UserConsentVoter"
12
"App\Security\Voter\PostCommentVoter"
13
"App\Security\Voter\PostVoter"
14
"App\Security\Voter\UserVoter"

Access decision log

# Result Attributes Object
1 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
2 DENIED moderate
App\Entity\EntryComment {#1374
  +user: Proxies\__CG__\App\Entity\User {#1369 …}
  +entry: App\Entity\Entry {#1790 …}
  +magazine: App\Entity\Magazine {#314
    +icon: Proxies\__CG__\App\Entity\Image {#295 …}
    +name: "asklemmy@lemmy.world"
    +title: "asklemmy"
    +description: """
      A Fediverse community for open-ended, thought provoking questions\n
      -----------------------------------------------------------------\n
      \n
      ---\n
      \n
      **Rules: (interactive)**\n
      ------------------------\n
      \n
      ---\n
      \n
      1) Be nice and; have funDoxxing, trolling, sealioning, racism, and toxicity are not welcomed in AskLemmy. Remember what your mother said: if you can’t say something nice, don’t say anything at all. In addition, the site-wide Lemmy.world terms of service also apply here. [Please familiarize yourself with them](https://legal.lemmy.world/tos/)\n
      \n
      ---\n
      \n
      2) All posts must end with a '?'This is sort of like Jeopardy. Please phrase all post titles in the form of a proper question ending with ?\n
      \n
      ---\n
      \n
      3) No spamPlease do not flood the community with nonsense. Actual suspected spammers will be banned on site. No astroturfing.\n
      \n
      ---\n
      \n
      4) NSFW is okay, within reasonJust remember to tag posts with either a content warning or a [NSFW] tag. Overtly sexual posts are not allowed, please direct them to either [!asklemmyafterdark@lemmy.world](https://lemmy.world/c/asklemmyafterdark) or [!asklemmynsfw@lemmynsfw.com](https://lemmynsfw.com/c/asklemmynsfw). NSFW comments should be restricted to posts tagged [NSFW].\n
      \n
      ---\n
      \n
      5) This is not a support community.It is not a place for ‘how do I?’, type questions. If you have any questions regarding the site itself or would like to report a community, please direct them to [Lemmy.world Support](https://lemmy.world/c/support) or email info@lemmy.world. For other questions check our partnered communities list, or use the search function.\n
      \n
      ---\n
      \n
      Reminder: The [terms of service](https://legal.lemmy.world/tos/) apply here too.\n
      \n
      Partnered Communities:\n
      ----------------------\n
      \n
      [Tech Support](/c/techsupport@lemmy.world)\n
      \n
      [No Stupid Questions](/c/nostupidquestions@lemmy.world)\n
      \n
      [You Should Know](/c/youshouldknow@lemmy.world)\n
      \n
      [Reddit](/c/reddit@lemmy.world)\n
      \n
      [Jokes](/c/jokes@lemmy.world)\n
      \n
      [Ask Ouija](/c/askouija@lemmy.world)\n
      \n
      ---\n
      \n
      Logo design credit goes to: [tubbadu](/u/tubbadu@lemmy.world)\n
      \n
      ---\n
      \n
      ![](https://img.shields.io/lemmy/asklemmy%40lemmy.world?logo=lemmy&label=Total%20Subscribers)
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 1179
    +entryCommentCount: 42676
    +postCount: 3
    +postCommentCount: 67
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729583245 {#322
      date: 2024-10-22 09:47:25.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#286 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#282 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#271 …}
    +entries: Doctrine\ORM\PersistentCollection {#229 …}
    +posts: Doctrine\ORM\PersistentCollection {#187 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#249 …}
    +bans: Doctrine\ORM\PersistentCollection {#166 …}
    +reports: Doctrine\ORM\PersistentCollection {#152 …}
    +badges: Doctrine\ORM\PersistentCollection {#130 …}
    +logs: Doctrine\ORM\PersistentCollection {#120 …}
    +awards: Doctrine\ORM\PersistentCollection {#109 …}
    +categories: Doctrine\ORM\PersistentCollection {#96 …}
    -id: 49
    +apId: "asklemmy@lemmy.world"
    +apProfileId: "https://lemmy.world/c/asklemmy"
    +apPublicUrl: "https://lemmy.world/c/asklemmy"
    +apFollowersUrl: "https://lemmy.world/c/asklemmy/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "asklemmy"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729583301 {#323
      date: 2024-10-22 09:48:21.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1697177027 {#317
      date: 2023-10-13 08:03:47.0 +02:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    Apparently my method is a mix of those listed in the text.\n
    \n
    I’m in a similar situation as OP, some of my income is irregular. So my monthly budget isn’t *directly* based on the last month income, I use the average of the last six months, relying on a checking account for that. (I keep it with enough money to last me one or two months.)\n
    \n
    Then I split that budget into four categories:\n
    \n
    - **savings** - I aim for 25%. Into the saving account it goes.\n
    - **monthly fixed expenses** - periodic, somewhat predictable, monthly. For example bills, cornmeal and rice, cat food, etc.\n
    - **variable expenses** - they’re necessities like the above, but there’s some wiggling room. Like, if necessary I don’t mind eating eggs four lunches a week and walking instead of taking a bus, but I’d rather not to. Usually split into four weeks, so I expend it gradually.\n
    - **"fluff"***¹ - avoidable expenses that I still want for some reason like “it improves my mood”. Things for my hobbies, going to a restaurant, buying nicer clothes or hardware, etc. Unused fluff gets transferred to my savings account in the following month.\n
    \n
    Then here’s how I address some complexities:\n
    \n
    - periodic expenses for things that I buy every few months (e.g. gas canisters) - I include a fraction of them into the monthly fixed expenses, and only remove the money from the checking account when buying it\n
    - erratic but large expenses (e.g. house repairs) - I usually “borrow” this money from the savings, then “repay” it in the following months, as a fixed expense*².\n
    - high income multiple months in a row - I cap the budget and send the overflow to the savings.\n
    - low income multiple months in a row - cut down fluff, then reduce variable expenses, then reduce monthly fixed expenses, then reduce savings, in this order.\n
    - really low income multiple months in a row - if really necessary I borrow from the savings, keeping in mind that I’ll need to repay myself.\n
    \n
    Notes:\n
    \n
    1. The actual name that I give to this category is “imposto das lombrigas”, or roughly “roundworm tax”. That’s from from my family jokingly referring to cravings as "to have roundworms for [something].\n
    2. Some people might use a credit card instead for that, to build credit; that also works, but it depends a lot on the government that you pay taxes to. I do have a credit card but I tend to avoid it, as often there are discounts for paying things in cash.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1704269091 {#1768
    date: 2024-01-03 09:04:51.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@LesserAbe@lemmy.world"
    "@LesserAbe@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1378 …}
  +nested: Doctrine\ORM\PersistentCollection {#1371 …}
  +votes: Doctrine\ORM\PersistentCollection {#2427 …}
  +reports: Doctrine\ORM\PersistentCollection {#1902 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2485 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2483 …}
  -id: 275895
  -bodyTs: "'1':335 '2':369 '25':81 'account':53,85,190,235 'actual':337 'address':200 'aim':79 'also':384 'appar':1 'averag':43 'avoid':155,409 'base':34 'bill':97 'borrow':248,320 'budget':30,73,275 'build':381 'bus':137 'buy':177,209,237 'canist':215 'cap':273 'card':376,404 'cash':420 'cat':101 'categori':76,344 'check':52,234 'cloth':179 'complex':202 'cornmeal':98 'crave':362 'credit':375,382,403 'cut':290 'd':140 'das':347 'depend':388 'direct':33 'discount':415 'e.g':213,243 'eat':125 'egg':126 'enough':60 'errat':239 'etc':103,182 'everi':210 'exampl':96 'expend':151 'expens':90,105,156,204,226,242,264,296,301 'famili':358 'fix':89,225,263,300 'fluff':154,184,292 'follow':193,259 'food':102 'four':75,127,147 'fraction':219 'gas':214 'get':185 'give':341 'go':173 'goe':87 'govern':393 'gradual':153 'hardwar':181 'high':265 'hobbi':172 'hous':244 'imposto':346 'improv':166 'includ':217 'incom':24,39,266,284,310 'instead':133,377 'irregular':26 'isn':31 'joke':359 'keep':57,324 'larg':241 'last':37,46,63 'like':109,118,164 'list':9 'll':329 'lombriga':348 'lot':390 'low':283,309 'lunch':128 'm':14 'method':3 'might':372 'mind':124,326 'mix':6 'money':61,231,250 'month':29,38,48,68,88,94,194,212,224,260,268,286,299,312 'mood':168 'multipl':267,285,311 'name':338 'necess':108 'necessari':120,318 'need':330 'nicer':178 'note':334 'often':412 'one':65 'op':20 'order':307 'overflow':279 'pay':396,417 'peopl':371 'period':91,203 'predict':93 'rather':141 're':107 'realli':308,317 'reason':163 'reduc':294,298,303 'refer':360 'reli':49 'remov':229 'repair':245 'repay':255,332 'restaur':176 'rice':100 'room':117 'rough':350 'roundworm':351,366 'row':271,289,315 'save':77,84,189,253,282,304,323 'send':277 'similar':17 'situat':18 'six':47 'someth':368 'somewhat':92 'split':71,145 'still':159 'take':135 'tax':352,397 'tend':407 'text':12 'thing':169,206,418 'transfer':186 'two':67 'unus':183 'use':41,373 'usual':144,247 'variabl':104,295 'walk':132 'want':160 'week':130,148 'wiggl':116 'work':385"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/7034846"
  +editedAt: DateTimeImmutable @1711161866 {#1938
    date: 2024-03-23 03:44:26.0 +01:00
  }
  +createdAt: DateTimeImmutable @1704269091 {#1971
    date: 2024-01-03 09:04:51.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
3 DENIED edit
App\Entity\EntryComment {#1374
  +user: Proxies\__CG__\App\Entity\User {#1369 …}
  +entry: App\Entity\Entry {#1790 …}
  +magazine: App\Entity\Magazine {#314
    +icon: Proxies\__CG__\App\Entity\Image {#295 …}
    +name: "asklemmy@lemmy.world"
    +title: "asklemmy"
    +description: """
      A Fediverse community for open-ended, thought provoking questions\n
      -----------------------------------------------------------------\n
      \n
      ---\n
      \n
      **Rules: (interactive)**\n
      ------------------------\n
      \n
      ---\n
      \n
      1) Be nice and; have funDoxxing, trolling, sealioning, racism, and toxicity are not welcomed in AskLemmy. Remember what your mother said: if you can’t say something nice, don’t say anything at all. In addition, the site-wide Lemmy.world terms of service also apply here. [Please familiarize yourself with them](https://legal.lemmy.world/tos/)\n
      \n
      ---\n
      \n
      2) All posts must end with a '?'This is sort of like Jeopardy. Please phrase all post titles in the form of a proper question ending with ?\n
      \n
      ---\n
      \n
      3) No spamPlease do not flood the community with nonsense. Actual suspected spammers will be banned on site. No astroturfing.\n
      \n
      ---\n
      \n
      4) NSFW is okay, within reasonJust remember to tag posts with either a content warning or a [NSFW] tag. Overtly sexual posts are not allowed, please direct them to either [!asklemmyafterdark@lemmy.world](https://lemmy.world/c/asklemmyafterdark) or [!asklemmynsfw@lemmynsfw.com](https://lemmynsfw.com/c/asklemmynsfw). NSFW comments should be restricted to posts tagged [NSFW].\n
      \n
      ---\n
      \n
      5) This is not a support community.It is not a place for ‘how do I?’, type questions. If you have any questions regarding the site itself or would like to report a community, please direct them to [Lemmy.world Support](https://lemmy.world/c/support) or email info@lemmy.world. For other questions check our partnered communities list, or use the search function.\n
      \n
      ---\n
      \n
      Reminder: The [terms of service](https://legal.lemmy.world/tos/) apply here too.\n
      \n
      Partnered Communities:\n
      ----------------------\n
      \n
      [Tech Support](/c/techsupport@lemmy.world)\n
      \n
      [No Stupid Questions](/c/nostupidquestions@lemmy.world)\n
      \n
      [You Should Know](/c/youshouldknow@lemmy.world)\n
      \n
      [Reddit](/c/reddit@lemmy.world)\n
      \n
      [Jokes](/c/jokes@lemmy.world)\n
      \n
      [Ask Ouija](/c/askouija@lemmy.world)\n
      \n
      ---\n
      \n
      Logo design credit goes to: [tubbadu](/u/tubbadu@lemmy.world)\n
      \n
      ---\n
      \n
      ![](https://img.shields.io/lemmy/asklemmy%40lemmy.world?logo=lemmy&label=Total%20Subscribers)
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 1179
    +entryCommentCount: 42676
    +postCount: 3
    +postCommentCount: 67
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729583245 {#322
      date: 2024-10-22 09:47:25.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#286 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#282 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#271 …}
    +entries: Doctrine\ORM\PersistentCollection {#229 …}
    +posts: Doctrine\ORM\PersistentCollection {#187 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#249 …}
    +bans: Doctrine\ORM\PersistentCollection {#166 …}
    +reports: Doctrine\ORM\PersistentCollection {#152 …}
    +badges: Doctrine\ORM\PersistentCollection {#130 …}
    +logs: Doctrine\ORM\PersistentCollection {#120 …}
    +awards: Doctrine\ORM\PersistentCollection {#109 …}
    +categories: Doctrine\ORM\PersistentCollection {#96 …}
    -id: 49
    +apId: "asklemmy@lemmy.world"
    +apProfileId: "https://lemmy.world/c/asklemmy"
    +apPublicUrl: "https://lemmy.world/c/asklemmy"
    +apFollowersUrl: "https://lemmy.world/c/asklemmy/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "asklemmy"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729583301 {#323
      date: 2024-10-22 09:48:21.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1697177027 {#317
      date: 2023-10-13 08:03:47.0 +02:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    Apparently my method is a mix of those listed in the text.\n
    \n
    I’m in a similar situation as OP, some of my income is irregular. So my monthly budget isn’t *directly* based on the last month income, I use the average of the last six months, relying on a checking account for that. (I keep it with enough money to last me one or two months.)\n
    \n
    Then I split that budget into four categories:\n
    \n
    - **savings** - I aim for 25%. Into the saving account it goes.\n
    - **monthly fixed expenses** - periodic, somewhat predictable, monthly. For example bills, cornmeal and rice, cat food, etc.\n
    - **variable expenses** - they’re necessities like the above, but there’s some wiggling room. Like, if necessary I don’t mind eating eggs four lunches a week and walking instead of taking a bus, but I’d rather not to. Usually split into four weeks, so I expend it gradually.\n
    - **"fluff"***¹ - avoidable expenses that I still want for some reason like “it improves my mood”. Things for my hobbies, going to a restaurant, buying nicer clothes or hardware, etc. Unused fluff gets transferred to my savings account in the following month.\n
    \n
    Then here’s how I address some complexities:\n
    \n
    - periodic expenses for things that I buy every few months (e.g. gas canisters) - I include a fraction of them into the monthly fixed expenses, and only remove the money from the checking account when buying it\n
    - erratic but large expenses (e.g. house repairs) - I usually “borrow” this money from the savings, then “repay” it in the following months, as a fixed expense*².\n
    - high income multiple months in a row - I cap the budget and send the overflow to the savings.\n
    - low income multiple months in a row - cut down fluff, then reduce variable expenses, then reduce monthly fixed expenses, then reduce savings, in this order.\n
    - really low income multiple months in a row - if really necessary I borrow from the savings, keeping in mind that I’ll need to repay myself.\n
    \n
    Notes:\n
    \n
    1. The actual name that I give to this category is “imposto das lombrigas”, or roughly “roundworm tax”. That’s from from my family jokingly referring to cravings as "to have roundworms for [something].\n
    2. Some people might use a credit card instead for that, to build credit; that also works, but it depends a lot on the government that you pay taxes to. I do have a credit card but I tend to avoid it, as often there are discounts for paying things in cash.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1704269091 {#1768
    date: 2024-01-03 09:04:51.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@LesserAbe@lemmy.world"
    "@LesserAbe@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1378 …}
  +nested: Doctrine\ORM\PersistentCollection {#1371 …}
  +votes: Doctrine\ORM\PersistentCollection {#2427 …}
  +reports: Doctrine\ORM\PersistentCollection {#1902 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2485 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2483 …}
  -id: 275895
  -bodyTs: "'1':335 '2':369 '25':81 'account':53,85,190,235 'actual':337 'address':200 'aim':79 'also':384 'appar':1 'averag':43 'avoid':155,409 'base':34 'bill':97 'borrow':248,320 'budget':30,73,275 'build':381 'bus':137 'buy':177,209,237 'canist':215 'cap':273 'card':376,404 'cash':420 'cat':101 'categori':76,344 'check':52,234 'cloth':179 'complex':202 'cornmeal':98 'crave':362 'credit':375,382,403 'cut':290 'd':140 'das':347 'depend':388 'direct':33 'discount':415 'e.g':213,243 'eat':125 'egg':126 'enough':60 'errat':239 'etc':103,182 'everi':210 'exampl':96 'expend':151 'expens':90,105,156,204,226,242,264,296,301 'famili':358 'fix':89,225,263,300 'fluff':154,184,292 'follow':193,259 'food':102 'four':75,127,147 'fraction':219 'gas':214 'get':185 'give':341 'go':173 'goe':87 'govern':393 'gradual':153 'hardwar':181 'high':265 'hobbi':172 'hous':244 'imposto':346 'improv':166 'includ':217 'incom':24,39,266,284,310 'instead':133,377 'irregular':26 'isn':31 'joke':359 'keep':57,324 'larg':241 'last':37,46,63 'like':109,118,164 'list':9 'll':329 'lombriga':348 'lot':390 'low':283,309 'lunch':128 'm':14 'method':3 'might':372 'mind':124,326 'mix':6 'money':61,231,250 'month':29,38,48,68,88,94,194,212,224,260,268,286,299,312 'mood':168 'multipl':267,285,311 'name':338 'necess':108 'necessari':120,318 'need':330 'nicer':178 'note':334 'often':412 'one':65 'op':20 'order':307 'overflow':279 'pay':396,417 'peopl':371 'period':91,203 'predict':93 'rather':141 're':107 'realli':308,317 'reason':163 'reduc':294,298,303 'refer':360 'reli':49 'remov':229 'repair':245 'repay':255,332 'restaur':176 'rice':100 'room':117 'rough':350 'roundworm':351,366 'row':271,289,315 'save':77,84,189,253,282,304,323 'send':277 'similar':17 'situat':18 'six':47 'someth':368 'somewhat':92 'split':71,145 'still':159 'take':135 'tax':352,397 'tend':407 'text':12 'thing':169,206,418 'transfer':186 'two':67 'unus':183 'use':41,373 'usual':144,247 'variabl':104,295 'walk':132 'want':160 'week':130,148 'wiggl':116 'work':385"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/7034846"
  +editedAt: DateTimeImmutable @1711161866 {#1938
    date: 2024-03-23 03:44:26.0 +01:00
  }
  +createdAt: DateTimeImmutable @1704269091 {#1971
    date: 2024-01-03 09:04:51.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
4 DENIED moderate
App\Entity\EntryComment {#1374
  +user: Proxies\__CG__\App\Entity\User {#1369 …}
  +entry: App\Entity\Entry {#1790 …}
  +magazine: App\Entity\Magazine {#314
    +icon: Proxies\__CG__\App\Entity\Image {#295 …}
    +name: "asklemmy@lemmy.world"
    +title: "asklemmy"
    +description: """
      A Fediverse community for open-ended, thought provoking questions\n
      -----------------------------------------------------------------\n
      \n
      ---\n
      \n
      **Rules: (interactive)**\n
      ------------------------\n
      \n
      ---\n
      \n
      1) Be nice and; have funDoxxing, trolling, sealioning, racism, and toxicity are not welcomed in AskLemmy. Remember what your mother said: if you can’t say something nice, don’t say anything at all. In addition, the site-wide Lemmy.world terms of service also apply here. [Please familiarize yourself with them](https://legal.lemmy.world/tos/)\n
      \n
      ---\n
      \n
      2) All posts must end with a '?'This is sort of like Jeopardy. Please phrase all post titles in the form of a proper question ending with ?\n
      \n
      ---\n
      \n
      3) No spamPlease do not flood the community with nonsense. Actual suspected spammers will be banned on site. No astroturfing.\n
      \n
      ---\n
      \n
      4) NSFW is okay, within reasonJust remember to tag posts with either a content warning or a [NSFW] tag. Overtly sexual posts are not allowed, please direct them to either [!asklemmyafterdark@lemmy.world](https://lemmy.world/c/asklemmyafterdark) or [!asklemmynsfw@lemmynsfw.com](https://lemmynsfw.com/c/asklemmynsfw). NSFW comments should be restricted to posts tagged [NSFW].\n
      \n
      ---\n
      \n
      5) This is not a support community.It is not a place for ‘how do I?’, type questions. If you have any questions regarding the site itself or would like to report a community, please direct them to [Lemmy.world Support](https://lemmy.world/c/support) or email info@lemmy.world. For other questions check our partnered communities list, or use the search function.\n
      \n
      ---\n
      \n
      Reminder: The [terms of service](https://legal.lemmy.world/tos/) apply here too.\n
      \n
      Partnered Communities:\n
      ----------------------\n
      \n
      [Tech Support](/c/techsupport@lemmy.world)\n
      \n
      [No Stupid Questions](/c/nostupidquestions@lemmy.world)\n
      \n
      [You Should Know](/c/youshouldknow@lemmy.world)\n
      \n
      [Reddit](/c/reddit@lemmy.world)\n
      \n
      [Jokes](/c/jokes@lemmy.world)\n
      \n
      [Ask Ouija](/c/askouija@lemmy.world)\n
      \n
      ---\n
      \n
      Logo design credit goes to: [tubbadu](/u/tubbadu@lemmy.world)\n
      \n
      ---\n
      \n
      ![](https://img.shields.io/lemmy/asklemmy%40lemmy.world?logo=lemmy&label=Total%20Subscribers)
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 1179
    +entryCommentCount: 42676
    +postCount: 3
    +postCommentCount: 67
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729583245 {#322
      date: 2024-10-22 09:47:25.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#286 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#282 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#271 …}
    +entries: Doctrine\ORM\PersistentCollection {#229 …}
    +posts: Doctrine\ORM\PersistentCollection {#187 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#249 …}
    +bans: Doctrine\ORM\PersistentCollection {#166 …}
    +reports: Doctrine\ORM\PersistentCollection {#152 …}
    +badges: Doctrine\ORM\PersistentCollection {#130 …}
    +logs: Doctrine\ORM\PersistentCollection {#120 …}
    +awards: Doctrine\ORM\PersistentCollection {#109 …}
    +categories: Doctrine\ORM\PersistentCollection {#96 …}
    -id: 49
    +apId: "asklemmy@lemmy.world"
    +apProfileId: "https://lemmy.world/c/asklemmy"
    +apPublicUrl: "https://lemmy.world/c/asklemmy"
    +apFollowersUrl: "https://lemmy.world/c/asklemmy/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "asklemmy"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729583301 {#323
      date: 2024-10-22 09:48:21.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1697177027 {#317
      date: 2023-10-13 08:03:47.0 +02:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    Apparently my method is a mix of those listed in the text.\n
    \n
    I’m in a similar situation as OP, some of my income is irregular. So my monthly budget isn’t *directly* based on the last month income, I use the average of the last six months, relying on a checking account for that. (I keep it with enough money to last me one or two months.)\n
    \n
    Then I split that budget into four categories:\n
    \n
    - **savings** - I aim for 25%. Into the saving account it goes.\n
    - **monthly fixed expenses** - periodic, somewhat predictable, monthly. For example bills, cornmeal and rice, cat food, etc.\n
    - **variable expenses** - they’re necessities like the above, but there’s some wiggling room. Like, if necessary I don’t mind eating eggs four lunches a week and walking instead of taking a bus, but I’d rather not to. Usually split into four weeks, so I expend it gradually.\n
    - **"fluff"***¹ - avoidable expenses that I still want for some reason like “it improves my mood”. Things for my hobbies, going to a restaurant, buying nicer clothes or hardware, etc. Unused fluff gets transferred to my savings account in the following month.\n
    \n
    Then here’s how I address some complexities:\n
    \n
    - periodic expenses for things that I buy every few months (e.g. gas canisters) - I include a fraction of them into the monthly fixed expenses, and only remove the money from the checking account when buying it\n
    - erratic but large expenses (e.g. house repairs) - I usually “borrow” this money from the savings, then “repay” it in the following months, as a fixed expense*².\n
    - high income multiple months in a row - I cap the budget and send the overflow to the savings.\n
    - low income multiple months in a row - cut down fluff, then reduce variable expenses, then reduce monthly fixed expenses, then reduce savings, in this order.\n
    - really low income multiple months in a row - if really necessary I borrow from the savings, keeping in mind that I’ll need to repay myself.\n
    \n
    Notes:\n
    \n
    1. The actual name that I give to this category is “imposto das lombrigas”, or roughly “roundworm tax”. That’s from from my family jokingly referring to cravings as "to have roundworms for [something].\n
    2. Some people might use a credit card instead for that, to build credit; that also works, but it depends a lot on the government that you pay taxes to. I do have a credit card but I tend to avoid it, as often there are discounts for paying things in cash.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1704269091 {#1768
    date: 2024-01-03 09:04:51.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@LesserAbe@lemmy.world"
    "@LesserAbe@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1378 …}
  +nested: Doctrine\ORM\PersistentCollection {#1371 …}
  +votes: Doctrine\ORM\PersistentCollection {#2427 …}
  +reports: Doctrine\ORM\PersistentCollection {#1902 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2485 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2483 …}
  -id: 275895
  -bodyTs: "'1':335 '2':369 '25':81 'account':53,85,190,235 'actual':337 'address':200 'aim':79 'also':384 'appar':1 'averag':43 'avoid':155,409 'base':34 'bill':97 'borrow':248,320 'budget':30,73,275 'build':381 'bus':137 'buy':177,209,237 'canist':215 'cap':273 'card':376,404 'cash':420 'cat':101 'categori':76,344 'check':52,234 'cloth':179 'complex':202 'cornmeal':98 'crave':362 'credit':375,382,403 'cut':290 'd':140 'das':347 'depend':388 'direct':33 'discount':415 'e.g':213,243 'eat':125 'egg':126 'enough':60 'errat':239 'etc':103,182 'everi':210 'exampl':96 'expend':151 'expens':90,105,156,204,226,242,264,296,301 'famili':358 'fix':89,225,263,300 'fluff':154,184,292 'follow':193,259 'food':102 'four':75,127,147 'fraction':219 'gas':214 'get':185 'give':341 'go':173 'goe':87 'govern':393 'gradual':153 'hardwar':181 'high':265 'hobbi':172 'hous':244 'imposto':346 'improv':166 'includ':217 'incom':24,39,266,284,310 'instead':133,377 'irregular':26 'isn':31 'joke':359 'keep':57,324 'larg':241 'last':37,46,63 'like':109,118,164 'list':9 'll':329 'lombriga':348 'lot':390 'low':283,309 'lunch':128 'm':14 'method':3 'might':372 'mind':124,326 'mix':6 'money':61,231,250 'month':29,38,48,68,88,94,194,212,224,260,268,286,299,312 'mood':168 'multipl':267,285,311 'name':338 'necess':108 'necessari':120,318 'need':330 'nicer':178 'note':334 'often':412 'one':65 'op':20 'order':307 'overflow':279 'pay':396,417 'peopl':371 'period':91,203 'predict':93 'rather':141 're':107 'realli':308,317 'reason':163 'reduc':294,298,303 'refer':360 'reli':49 'remov':229 'repair':245 'repay':255,332 'restaur':176 'rice':100 'room':117 'rough':350 'roundworm':351,366 'row':271,289,315 'save':77,84,189,253,282,304,323 'send':277 'similar':17 'situat':18 'six':47 'someth':368 'somewhat':92 'split':71,145 'still':159 'take':135 'tax':352,397 'tend':407 'text':12 'thing':169,206,418 'transfer':186 'two':67 'unus':183 'use':41,373 'usual':144,247 'variabl':104,295 'walk':132 'want':160 'week':130,148 'wiggl':116 'work':385"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/7034846"
  +editedAt: DateTimeImmutable @1711161866 {#1938
    date: 2024-03-23 03:44:26.0 +01:00
  }
  +createdAt: DateTimeImmutable @1704269091 {#1971
    date: 2024-01-03 09:04:51.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
5 DENIED edit
App\Entity\Magazine {#314
  +icon: Proxies\__CG__\App\Entity\Image {#295 …}
  +name: "asklemmy@lemmy.world"
  +title: "asklemmy"
  +description: """
    A Fediverse community for open-ended, thought provoking questions\n
    -----------------------------------------------------------------\n
    \n
    ---\n
    \n
    **Rules: (interactive)**\n
    ------------------------\n
    \n
    ---\n
    \n
    1) Be nice and; have funDoxxing, trolling, sealioning, racism, and toxicity are not welcomed in AskLemmy. Remember what your mother said: if you can’t say something nice, don’t say anything at all. In addition, the site-wide Lemmy.world terms of service also apply here. [Please familiarize yourself with them](https://legal.lemmy.world/tos/)\n
    \n
    ---\n
    \n
    2) All posts must end with a '?'This is sort of like Jeopardy. Please phrase all post titles in the form of a proper question ending with ?\n
    \n
    ---\n
    \n
    3) No spamPlease do not flood the community with nonsense. Actual suspected spammers will be banned on site. No astroturfing.\n
    \n
    ---\n
    \n
    4) NSFW is okay, within reasonJust remember to tag posts with either a content warning or a [NSFW] tag. Overtly sexual posts are not allowed, please direct them to either [!asklemmyafterdark@lemmy.world](https://lemmy.world/c/asklemmyafterdark) or [!asklemmynsfw@lemmynsfw.com](https://lemmynsfw.com/c/asklemmynsfw). NSFW comments should be restricted to posts tagged [NSFW].\n
    \n
    ---\n
    \n
    5) This is not a support community.It is not a place for ‘how do I?’, type questions. If you have any questions regarding the site itself or would like to report a community, please direct them to [Lemmy.world Support](https://lemmy.world/c/support) or email info@lemmy.world. For other questions check our partnered communities list, or use the search function.\n
    \n
    ---\n
    \n
    Reminder: The [terms of service](https://legal.lemmy.world/tos/) apply here too.\n
    \n
    Partnered Communities:\n
    ----------------------\n
    \n
    [Tech Support](/c/techsupport@lemmy.world)\n
    \n
    [No Stupid Questions](/c/nostupidquestions@lemmy.world)\n
    \n
    [You Should Know](/c/youshouldknow@lemmy.world)\n
    \n
    [Reddit](/c/reddit@lemmy.world)\n
    \n
    [Jokes](/c/jokes@lemmy.world)\n
    \n
    [Ask Ouija](/c/askouija@lemmy.world)\n
    \n
    ---\n
    \n
    Logo design credit goes to: [tubbadu](/u/tubbadu@lemmy.world)\n
    \n
    ---\n
    \n
    ![](https://img.shields.io/lemmy/asklemmy%40lemmy.world?logo=lemmy&label=Total%20Subscribers)
    """
  +rules: null
  +subscriptionsCount: 1
  +entryCount: 1179
  +entryCommentCount: 42676
  +postCount: 3
  +postCommentCount: 67
  +isAdult: false
  +customCss: null
  +lastActive: DateTime @1729583245 {#322
    date: 2024-10-22 09:47:25.0 +02:00
  }
  +markedForDeletionAt: null
  +tags: null
  +moderators: Doctrine\ORM\PersistentCollection {#286 …}
  +ownershipRequests: Doctrine\ORM\PersistentCollection {#282 …}
  +moderatorRequests: Doctrine\ORM\PersistentCollection {#271 …}
  +entries: Doctrine\ORM\PersistentCollection {#229 …}
  +posts: Doctrine\ORM\PersistentCollection {#187 …}
  +subscriptions: Doctrine\ORM\PersistentCollection {#249 …}
  +bans: Doctrine\ORM\PersistentCollection {#166 …}
  +reports: Doctrine\ORM\PersistentCollection {#152 …}
  +badges: Doctrine\ORM\PersistentCollection {#130 …}
  +logs: Doctrine\ORM\PersistentCollection {#120 …}
  +awards: Doctrine\ORM\PersistentCollection {#109 …}
  +categories: Doctrine\ORM\PersistentCollection {#96 …}
  -id: 49
  +apId: "asklemmy@lemmy.world"
  +apProfileId: "https://lemmy.world/c/asklemmy"
  +apPublicUrl: "https://lemmy.world/c/asklemmy"
  +apFollowersUrl: "https://lemmy.world/c/asklemmy/followers"
  +apInboxUrl: "https://lemmy.world/inbox"
  +apDomain: "lemmy.world"
  +apPreferredUsername: "asklemmy"
  +apDiscoverable: true
  +apManuallyApprovesFollowers: null
  +privateKey: null
  +publicKey: null
  +apFetchedAt: DateTime @1729583301 {#323
    date: 2024-10-22 09:48:21.0 +02:00
  }
  +apDeletedAt: null
  +apTimeoutAt: null
  +visibility: "visible             "
  +createdAt: DateTimeImmutable @1697177027 {#317
    date: 2023-10-13 08:03:47.0 +02:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS DENIED
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details